1

我可以使用 .unless 让 JSON-Web-Token 忽略路径。

app.use(expressJWT({secret: config.JWTSECRET}).unless({path: 
['/register', 
'/authentication',
]}));

我有一条使用不同 HTTP 方法(get、put、post、delete)的路由。我希望 /events 的 GET 版本不需要令牌,但 /event 的 POST 版本需要令牌。我可以在没有 GET 和 POST 等不同路由的情况下执行此操作吗?

/events //GET - no token required
/events //POST - token required
4

2 回答 2

4

如果我知道的话, express-jwt 模块正在使用express-unless为您提供.unless方法。有了它,您可以使用自定义函数来过滤请求。

var filter = function(req) {return true;}
app.use(expressJWT({ secret: config.JWTSECRET}).unless(filter));

filter函数中,您可以检查路由(req.path)和请求类型(req.method)。

于 2016-02-01T16:22:30.977 回答
0
 jwt({ secret, algorithms: ['HS256'] }).unless({
        path: [
            { url: /api/products, methods: ['GET', 'OPTIONS'] },
            { url: /api/categories/, methods: ['POST', 'OPTIONS'] },
           
        ]
    })
于 2022-01-28T14:06:37.637 回答