JWT 如何绕过某些 API 路由和 http 方法
JWT How to bypass certain API routes and http methods
我可以让 get JSON-Web-Token 忽略使用 .unless 的路径。
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
如果我没记错的话,express-jwt 模块正在使用 express-unless
为您提供 .unless
方法。这样,您就可以使用自定义函数来过滤请求。
var filter = function(req) {return true;}
app.use(expressJWT({ secret: config.JWTSECRET}).unless(filter));
在filter
函数中,可以查看路由(req.path
)和请求类型(req.method
)。
jwt({ secret, algorithms: ['HS256'] }).unless({
path: [
{ url: /api/products, methods: ['GET', 'OPTIONS'] },
{ url: /api/categories/, methods: ['POST', 'OPTIONS'] },
]
})
我可以让 get JSON-Web-Token 忽略使用 .unless 的路径。
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
如果我没记错的话,express-jwt 模块正在使用 express-unless
为您提供 .unless
方法。这样,您就可以使用自定义函数来过滤请求。
var filter = function(req) {return true;}
app.use(expressJWT({ secret: config.JWTSECRET}).unless(filter));
在filter
函数中,可以查看路由(req.path
)和请求类型(req.method
)。
jwt({ secret, algorithms: ['HS256'] }).unless({
path: [
{ url: /api/products, methods: ['GET', 'OPTIONS'] },
{ url: /api/categories/, methods: ['POST', 'OPTIONS'] },
]
})