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版本解决
⭐相关链接
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。