node.js - Passport JWT 策略提取选项
问题描述
使用 Passport JWT 策略,我通过 向下传递令牌params
,并像这样提取令牌ExtractJWT.fromUrlQueryParameter('secret_token')
。
但有时我通过 传递令牌header
,我想像这样提取它ExtractJWT.fromHeader('secret_token')
。
如何检查它是如何被传递下来并动态使用正确的提取方法的。
这是我的代码:
passport.use(new JWTstrategy({
secretOrKey: process.env.AUTH_SECRET,
jwtFromRequest: ExtractJWT.fromUrlQueryParameter('secret_token')
}, async (token, done) => {
try {
//Pass the user details to the next middleware
return done(null, token.user);
} catch (error) {
done(error);
}
}));
谢谢!我在这个很久了......
解决方案
使用ExtractJwt.fromExtractors()方法
var jwtStrategy = new JwtStrategy({
// this will try to extract from Query parm, header and Authheader
jwtFromRequest: ExtractJwt.fromExtractors([ExtractJwt.fromUrlQueryParameter("secret_token"), ExtractJwt.fromHeader("secret_token"), ExtractJwt.fromAuthHeaderAsBearerToken()]),
//here we have defined all possible extractors in an array
secretOrKey: process.env.AUTH_SECRET
}, async (payload, done) => {
...
});
推荐阅读
- asp.net - 在 docker 容器中安装 ASP.Net 3.5
- reactjs - 如何从导入文件名中删除路径以响应 NPM 构建
- javascript - 如何在垂直滑块同步光滑滑块中保持主幻灯片和垂直幻灯片的高度相同?
- sql-server - 将电源查询迁移到 SSAS 或 SSIS?
- node.js - 更新网络服务器时如何更新主屏幕应用程序
- python - 在python中选择句子
- forms - Asp .Net Core Razor Forms:验证失败后重新填充新集合项
- python - 日期范围之间的Python熊猫数据透视表
- java - 为什么 siAssignableFor 为类实现接口返回 false
- python - 使用 for 循环将标题添加到乘法表