首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路由前Express-jwt控制令牌

路由前Express-jwt控制令牌
EN

Stack Overflow用户
提问于 2020-12-07 23:17:31
回答 1查看 33关注 0票数 1

我的api总是首先检查令牌的有效性,因此即使路由不存在,它也总是返回401,如果令牌正确,它会检查路由,如果当时路由不存在,则返回404。

它不应该是另一种方式,首先是路由存在测试,然后是令牌测试?

如何实现这个目标?

代码语言:javascript
复制
app.use(expressJwt({  secret: process.env.SECRET_TOKEN }).unless({ path: [
        '/api/login'
    ]}));
app.use(errorHandler)

function errorHandler(err, req, res, next) {
    if(err.status === '401') { // partie api PP avec token
        res.status(401).json({returnCode: 100, returnLabel: 'KO', data:{}});
        return;
    }else if(err.status === '404'){
        res.status(404).json({returnCode: 404, returnLabel: '404', data:{}});
        return;
    }else { 
        res.status(500)
        res.json({error: err})
    }
}

此外,在我的情况下,我不能赶上404,但我有一个像这样的返回,而不是像401这样的errorHandler:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot GET /V1/</pre>
</body>

</html>

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-12-11 00:33:30

好了,我自己找到了解决方案,我必须在我的代码中添加以下内容:

代码语言:javascript
复制
app.use(function(req, res, next) {
   res.status(404);
   res.json({returnCode: 404, returnLabel: '404: File Not Found', data:{}});
return;
});

除了我已经就位的errorHandler (显然404不会触发错误,也不适合处理程序)

否则,如果REST API必须首先检查令牌或路径,我就找不到答案了?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65184369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档