1 authentication cookies node.js express jwt
我希望能够更改 JWT 密钥,并且不会导致登录用户出现浏览器错误。
目前,如果用户登录并且 JWT 密钥发生更改,他们的浏览器会抛出错误。这只能通过用户手动从浏览器中删除 cookie 来解决。
server.express.use((req, res, next) => {
const { token } = req.cookies;
if (token) {
const { userId } = jwt.verify(token, process.env.APP_SECRET);
req.userId = userId;
}
next();
});
Run Code Online (Sandbox Code Playgroud)
我可以在上面的代码中添加什么,以便如果 jwt.verify 失败,用户被迫再次登录,这将根据新的 jwt 密钥设置新的 cookie?
使用 try-catch 块并发送 res.status,而不是 if 语句。如果有前端,出错,再次推送登录页面
try {
const { userId } = jwt.verify(token, process.env.APP_SECRET);
req.userId = userId;
next()
} catch(err) {
req.redirect("/login_page")
res.status(400);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11252 次 |
| 最近记录: |