问题:
注册将 JWT 字符串解析还原成 JSON 对象的中间件时,在终端显示“ RangeError: express-jwt: `algorithms` is a required option ” 错误。
原因:
安装的express-jwt模块会默认为6.0.0版本,更新后的jwt需要在配置中加入algorithms属性,即设置jwt的算法。一般HS256为配置algorithms的默认值。
错误代码:
app.use(expressJWT({
secret: secretKey
})
)
修改后的代码:
app.use(expressJWT({
secret: secretKey,
algorithms: ['HS256']
})
)
正确结果:
说明文档的解释:
Required Parameters
The algorithms parameter is required to prevent potential downgrade attacks when providing third party libraries as secrets.
意思是
必需参数
algorithms参数是必需的,以防止在提供第三方库作为机密时潜在的降级攻击。