Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JWT如何绕过某些API路由和http方法_Javascript_Node.js_Jwt_Json Web Token - Fatal编程技术网

Javascript JWT如何绕过某些API路由和http方法

Javascript JWT如何绕过某些API路由和http方法,javascript,node.js,jwt,json-web-token,Javascript,Node.js,Jwt,Json Web Token,我可以让GetJSON Web令牌忽略路径,除非像这样 app.use(expressJWT({secret: config.JWTSECRET}).unless({path: ['/register', '/authentication', ]})); 我有一个带有不同HTTP方法get、put、post和delete的路由。我希望/events的GET版本不需要令牌,但是/event的POST版本需要令牌。我可以这样做,而不是有不同的路线获取和张贴等 /events //GET - n

我可以让GetJSON Web令牌忽略路径,除非像这样

app.use(expressJWT({secret: config.JWTSECRET}).unless({path: 
['/register', 
'/authentication',
]}));
我有一个带有不同HTTP方法get、put、post和delete的路由。我希望/events的GET版本不需要令牌,但是/event的POST版本需要令牌。我可以这样做,而不是有不同的路线获取和张贴等

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

如果我没记错的话,express jwt模块正在使用express除非来给您提供.exception方法。这样,您就可以使用自定义函数来过滤请求

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

在filter函数中,您可以检查route req.path和请求类型req.method。

如果我知道的没错,express jwt模块正在使用express除非为您提供.除非方法。这样,您就可以使用自定义函数来过滤请求

var filter = function(req) {return true;}
app.use(expressJWT({ secret: config.JWTSECRET}).unless(filter));
在过滤器功能中,您可以检查路由请求路径和请求类型req.method