我想将一定的权限传递给Passport.js中路由的经过身份验证的调用。
这就是我现在所拥有的:
app.get('/mypage', app.authenticated, function (req, res, next) {
if (!req.user.hasPermission('myPermission')) {
return res.redirect('/unauthorized');
}
// do stuff
};
var middleware = function(app) {
app.authenticated = function (req, res, next) {
if (req.isAuthenticated()) {
return next();
}
if (req.method == 'GET') {
req.session.returnTo = req.originalUrl;
}
res.redirect('/login');
};
}
module.exports = middleware;
我希望将权限传递给authenticated
,如下所示:
app.get('/mypage', app.authenticated('myPermission'), function (req, res, next) {
// do stuff
};
但据我所知,由于经过身份验证可以自动获取所需的参数,因此我不能只添加一个新参数。
我该怎么做呢?
答案 0 :(得分:0)
您可以在任何快速中间件中访问 req.body 值。
在app.authenticated(..)
中间件中,在执行之前设置值:
req.body['permission'] = 'myPermission'
使用req.body [' permission']的值进行授权。