Ответы пользователя по тегу Node.js
  • React, nodejs, jwt - как сделать аутентификацию и авторизацию с refresh token?

    @yaroslav1996
    Не знаю если вам поможет, примерно вот так можете попробывать. И это работает, проверять можете через middlewares или сделать, endpoint. По которому вы можете стучаться, по истечению времени. Пример базовый!

    const jwt = require('jsonwebtoken');
    
    const secret = process.env.TOKEN_SECRET || 'some other secret as default';
    const tokenLife = +process.env.TOKEN_LIFE || 3600;
    
    module.exports = (req, res) => {
      const { refreshToken } = req.body;
    
      jwt.verify(refreshToken, secret, (err, decoded) => {
        if (err) {
          return res.status(401).send('Unauthorised');
        }
        if (decoded) {
          const payload = {
            id: decoded.id,
            email: decoded.email,
          };
          jwt.sign(payload, secret, { expiresIn: tokenLife }, (Error, token) => {
            if (Error) {
              return res.status(401).send('Unauthorised');
            }
            res.send({
              success: true,
              accessToken: `Bearer ${token}`,
            });
          });
        }
      });
    };
    Ответ написан
    1 комментарий