gpt4 book ai didi

node.js - 如何在 JWT 中使用通配符,除非?

转载 作者:行者123 更新时间:2023-12-02 11:06:00 27 4
gpt4 key购买 nike

我正在使用express-jwt来保护我的 Node 应用程序,并且想知道如何在unless参数中使用通配符。我的工作代码如下,我真正想做的是开放对任何以“/login”开头的路径的访问,这样我就不必列出每个资源。当我将 '/login*' 添加到 unprotected 数组时,它最终会阻止/login 并显示 401/unauthorized。

作品:

// routes open to all
var unprotected = [
'/login',
'/login/app/main.js',
'favicon.ico'
];

// configure jwt
var jwtCheck = jwt({
secret: new Buffer(config.get('auth0.secret'), 'base64'),
audience: config.get('auth0.clientid')
});

// insert jwt middleware
app.use( jwtCheck.unless({path: unprotected}) );

不起作用:

// routes open to all
var unprotected = [
'/login*',
'favicon.ico'
];

// configure jwt
var jwtCheck = jwt({
secret: new Buffer(config.get('auth0.secret'), 'base64'),
audience: config.get('auth0.clientid')
});

// insert jwt middleware
app.use( jwtCheck.unless({path: unprotected}) );

最佳答案

正则表达式需要存在于引号之外:

var unprotected = [
/\/login*/,
/favicon.ico/
];

请注意,此时使用express-除非您无法在同一配置数组中混合正则表达式和字符串,这就是为什么第二个参数需要使用正斜杠而不是引号。

关于node.js - 如何在 JWT 中使用通配符,除非?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com