Как сделать авторизацию без регистрации в node.js?

Пользователь

от leila.dickinson , в категории: JavaScript , 10 месяцев назад

Как сделать авторизацию без регистрации в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nicola , 10 месяцев назад

@leila.dickinson 

Пользователь

от edyth , 15 дней назад

@leila.dickinson 

Для реализации авторизации без регистрации в Node.js можно использовать механизм генерации временных токенов или сессий для аутентификации пользователей. Ниже приведен пример реализации авторизации без регистрации с помощью временных токенов:

  1. Генерация временного токена при входе пользователя:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();

app.post('/login', (req, res) => {
  // Генерация временного токена
  const token = jwt.sign({ username: req.body.username, loggedIn: true }, 'secretKey', { expiresIn: '1h' });
  
  res.json({ token });
});


  1. Проверка временного токена при доступе к защищенным ресурсам:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();

// Проверка токена перед доступом к защищенному ресурсу
const verifyToken = (req, res, next) => {
  const token = req.headers.authorization;
  
  if (!token) {
    return res.status(401).json({ message: 'Требуется авторизация' });
  }
  
  try {
    jwt.verify(token, 'secretKey');
    next();
  } catch (error) {
    return res.status(403).json({ message: 'Недопустимый токен' });
  }
};

app.get('/protected', verifyToken, (req, res) => {
  res.json({ message: 'Доступ к защищенному ресурсу разрешен' });
});


Таким образом, пользователь получает временный токен при входе на сайт, и этот токен должен быть передан при доступе к защищенным ресурсам. Токен может быть проверен на валидность с использованием метода jwt.verify().