Как безопасно сохранить токен JWT, полученный от входа в систему auth0 (nodejs express) - PullRequest
1 голос
/ 24 октября 2019

Я новичок в Auth0 и пытаюсь реализовать его в своем обычном экспресс-веб-приложении. Мне нужно защитить / проверить пользователя, прежде чем он получит доступ к некоторым моим конечным точкам. Насколько я понимаю, я могу сделать это с JWT, который возвращается из обратного вызова входа в систему. Я зашел так далеко, но когда я вхожу, он перенаправляет, и я не уверен, как передать токен доступа / надежно сохранить его на стороне клиента.

это то, как выглядит моя конечная точка обратного вызовапосле входа в систему. Он возвращает код авторизации, но я потерялся отсюда.

https://auth0.com/docs/api-auth/tutorials/authorization-code-grant

Я возвращаю это при входе в систему:

/ callback? Code = oi9-ZTieXo0hYL6A & state = sMJAUK4QVs7jziJ7lXvwmGKF

// Perform the final stage of authentication and redirect to previously requested URL or '/user'
router.get('/callback', function (req, res, next) {     
  passport.authenticate('auth0', function (err, user, info) {
    if (err) { return next(err); }
    if (!user) { return res.redirect('/login'); }
    req.logIn(user, function (err) {
      if (err) { return next(err); }
      const returnTo = req.session.returnTo;
      delete req.session.returnTo;  
        res.redirect('/user);
    });
  })(req, res, next);
});

куда я идуотсюда?

1 Ответ

2 голосов
/ 26 октября 2019

Auth0 не рекомендует хранить токены в хранилище браузера (сеанс / локальное хранилище). Для клиентских приложений токены должны быть недолговечными и, при необходимости, обновляться через автоматическую аутентификацию (обновляться через сеанс cookie с сервером авторизации в скрытом iframe).

Это указано здесь: https://auth0.com/docs/security/store-tokens

Если у вас есть бэкэнд, тогда обрабатывайте там токены, если вы используете API SPA +, тогда используйте стратегию, описанную в ссылке.

...