expressJWT is not function错误
从网上搜索来的例子直接拿过来用时,会发生这个错误。
然后找度娘问了一圈,版本问题
const expressJWT = require('express-jwt')
app.use(expressJWT({ secret: config["Token-secretKey"]}).unless({ path: ["/login"] }))这个是早期的使用方法
现在的需要修改一下
const {expressjwt: expressJWT} = require('express-jwt')
app.use(expressJWT({ secret: config["Token-secretKey"], algorithms: ["HS256"]}).unless({ path: ["/login"] }))具体详情可以查阅express-jwt - npm
然后就是token验证的问题
客户端通过Authorization发送过来的token需要携带“Bearer ”,完整的是Bearer xxxxxxx.xxx.xxx这样子的,Bearer后面是一个空格
验证通过以后,在后面的处理函数可以通过req.auth来获取签名信息,auth是express-jwt默认的当然也可以停止,详情还是查阅express-jwt - npm
最后就是记得处理验证失败的消息。