javascript - 如何安全地保存从 auth0 登录收到的 JWT token (nodejs express)

标签 javascript node.js express jwt auth0

我是 Auth0 的新手,正在尝试在我的常规 Express Web 应用程序中实现它。我需要在用户访问我的某些端点之前保护/验证用户。我的理解是我可以使用从登录回调返回的 JWT 来做到这一点。我已经走到这一步了,但是当我登录时,它会重定向,我不确定如何传入访问 token /将其安全地存储在客户端。

这是登录后我的回调端点的样子。它返回授权代码,但我从这里迷路了。

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);
});

我从这里去哪里?

最佳答案

Auth0 不建议将 token 存储在浏览器存储( session /本地存储)中。对于客户端应用程序, token 应该是短暂的,并在必要时通过静默身份验证更新(通过隐藏 iframe 中与身份验证服务器的 cookie session 更新)。

此处概述: https://auth0.com/docs/security/store-tokens

如果您有后端,则在那里处理 token ,如果您使用的是 SPA + API,则使用链接中概述的策略。

关于javascript - 如何安全地保存从 auth0 登录收到的 JWT token (nodejs express),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58543996/

相关文章:

javascript - 使用 jQuery/JavaScript 复制到剪贴板文本框值

node.js - 浏览器同步 : command not found after installing locally

html - 如何在 Jade 中更改页面的背景颜色?

arrays - 使用node、express将对象数组保存到mongo数据库

node.js - 每次 React 向 Express 发送请求时,都会生成一个新的 session

javascript - 找不到 Webpack-dev-server Bundle.js

javascript - 检查是否定义了 javascript 对象/属性

javascript - 由于待处理的 MongoDB 连接(@hapi/lab、mongodb-memory-server、node),测试未完成

javascript - 在 Javascript 中生成 React/Express 路由

javascript - 使用 react-native-router-flux 将数据从屏幕发送到 Tab 屏幕