将变量绑定到 expressjwt 中的异步
Bind variables to async in expressjwt
我在下面的场景中使用 expressJWT
.
将参数从调用函数传递到异步函数
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked }).bind({ roles: roles});
}
async function isRevoked(req, payload, done, roles) {
console.log(roles) //undefined
}
这里,authorize
函数调用异步函数 isRevoked
那里我想传递参数 roles
.
这样做正确吗?
如果你使用中间匿名函数获取回调参数req、payload和done,那么你可以将它们与角色数组一起传递给定义的函数。由于闭包,角色数组将可用于 _isRevoked 函数。
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked: (req, payload, done) => _isRevoked(req, payload, done, roles)});
}
async function _isRevoked(req, payload, done, roles) {
console.log(roles) // ["test"]
}
我在下面的场景中使用 expressJWT
.
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked }).bind({ roles: roles});
}
async function isRevoked(req, payload, done, roles) {
console.log(roles) //undefined
}
这里,authorize
函数调用异步函数 isRevoked
那里我想传递参数 roles
.
这样做正确吗?
如果你使用中间匿名函数获取回调参数req、payload和done,那么你可以将它们与角色数组一起传递给定义的函数。由于闭包,角色数组将可用于 _isRevoked 函数。
module.exports = authorize;
function authorize(roles = ["test"]) {
const secret = config.Secret;
return expressJwt({ secret, isRevoked: (req, payload, done) => _isRevoked(req, payload, done, roles)});
}
async function _isRevoked(req, payload, done, roles) {
console.log(roles) // ["test"]
}