Oct1a

express-jwt和jsonwebtoken的关系

express-jwt是nodejs的一个中间件,用于验证指定http请求。

express-jwt内部引用了jsonwebtoken,对其封装使用。

在实际的项目中这两个都需要引用,他们两个的定位不一样。

jsonwebtoken是用来生成token给客户端的

express-jwt是用来验证token

🧡 安装

npm install express-jwt

遇到的错误

if (!options.algorithms) throw new Error(‘algorithms should be set’);Error: algorithms should be set

错误的提示说我们应该向 jwt 构造函数添加算法属性。

expressJwt({
  secret: 'secret',
  algorithms: ['HS256']
})

因为之前的版本中algorithms算法属性是有默认的,但现在指定算法属性是强制性添加的。

它根据用途更改,如果要使用它用于会话,可以使用 HSXXX 类型。如果要使用它进行跨应用程序身份验证(如 oauth)等,可以更喜欢 RSXXX 类型。RS 类型是数字签名,HS 类型不是

还有个解决方法就是给express-jwt降级至5.5.3版本解决

⭐相关链接

解决方法参考:stackoverflow.com

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。