我是 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/