express jwt-显示调试权限
可能会错误地显示需要哪些权限express jwt-显示调试权限,express,express-jwt,Express,Express Jwt,可能会错误地显示需要哪些权限 //用户没有此权限 app.post(“/”,guard.check(permissions.$(“admin”),(req,res)=>{ 返回新区域(请求正文) .save() .然后(面积=>{ ///.... }) .catch(err=>next(err)) }) 错误中间件 我想在console.log()中显示权限 app.use(函数(err、req、res、next){ if(err.code==“无效的\u令牌”){ 返回资源状态(401).s
//用户没有此权限
app.post(“/”,guard.check(permissions.$(“admin”),(req,res)=>{
返回新区域(请求正文)
.save()
.然后(面积=>{
///....
})
.catch(err=>next(err))
})
错误中间件
我想在console.log()中显示权限
app.use(函数(err、req、res、next){
if(err.code==“无效的\u令牌”){
返回资源状态(401).send(“…”)
}
如果(err.code==“需要凭证”){
返回资源状态(401).send(“…”)
}
//...
})
您可以包装guard。将中间件检查到另一个中间件中,您可以将所需的权限放入req
对象,然后您可以在错误处理程序中间件中获得它
const customGuard = (permissions) => { // middleware factory
return (req, res, next) => { // return a middleware function
req.requiredPermissions = permissions; // store `permissions` in `req.requiredPermissions`
guard.check(permissions)(req, res, next); // check your permissions with express-jwt-permissions's guard
}
}
使用,更换
app.post("/", guard.check(permissions.$("admin"))
...
借
然后,在您的错误中间件中
app.use(function (err, req, res, next) {
console.log("Required permissions: ", req.requiredPermissions); // here
if (err.code === "invalid_token") {
return res.status(401).send("...")
}
if (err.code === "credentials_required") {
return res.status(401).send("...")
}
//...
})
提供防护装置。检查功能。我猜权限存在于一些东西中,比如req.user.permission
它是express jwt permissions
库中的一个内置函数。在错误处理程序中,只需打印console.log(req.user)
。即可打印用户发送的所有权限。我想知道特定路径需要什么权限并打印它们。呼!,这是个好主意。请贴出答案。
app.use(function (err, req, res, next) {
console.log("Required permissions: ", req.requiredPermissions); // here
if (err.code === "invalid_token") {
return res.status(401).send("...")
}
if (err.code === "credentials_required") {
return res.status(401).send("...")
}
//...
})