Syd*_*ney 3 node.js express express-jwt
这是我的第一个快递应用。我正在尝试对某些路由实施身份验证。理想情况下,如果用户未通过身份验证,他们将被重定向到主页。所以我写了这个中间件:
var jwt = require('express-jwt');
app.get('/protected',
jwt({secret: 'shhhhhhared-secret'}), //express-jwt middleware
function(req, res, next) { //redirection middleware
if(!req.user._id){
console.log('authentication failed')
res.redirect('/home')
}else{
next()
};
});
Run Code Online (Sandbox Code Playgroud)
如果用户已登录,则代码有效。但是,如果用户未登录,浏览器只会显示 401 未经授权的错误。没有重定向。该过程在 express-jwt 中间件失败,并且没有继续到我的重定向中间件。
我需要在 jwt 函数中设置一些配置吗?或者有没有办法在遇到 401 时设置全局重定向。
如果用户未通过身份验证,则抛出错误并且 node.js 停止代码执行。之后,您将能够在快速错误处理程序中捕获它:
app.use(function(err, req, res, next) {
if(401 == err.status) {
res.redirect('/home')
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |