【发布时间】:2019-04-16 19:01:18
【问题描述】:
所以我想将参数传递给中间件,但我在某些方面遇到了困难。
我在路由的处理程序中有这个功能:
router.get('/users', auth.required, userController.findAll);
然后它会转到调用getTokenFromHeaders的auth函数:
const auth = {
required: jwt({
secret: 'secret',
userProperty: 'payload',
getToken: getTokenFromHeaders,
}),
...
};
在getTokenFromHeaders函数中,获取token并检查,如下所示:
const getTokenFromHeaders = (req) => {
...
return token; // Or null in case it's not there or incorrect
所以我的目标是传递一个像 auth.required('role') 这样的参数来检查用户在 getTokenFromHeaders 函数中的角色(定义更多的身份验证函数也可以(auth.admin,auth.whatever,...)
我已经尝试修改如下:
const auth = {
required: jwt({
secret: 'secret',
userProperty: 'payload',
getToken: getTokenFromHeaders(req, res, role),
}),
但它说 req 和 res 没有定义。
有什么办法吗?
【问题讨论】:
-
'role'来自哪里?
标签: javascript node.js express