使用node.js的express-jwt模块配置解析 Token 的中间件

上个文章中说到如生成token 参考如何生成tokennode.js jsonwebtoken模块的使用_Z_Gleng的博客-CSDN博客

以下是解析token的步骤

1,运行如下命令 安装解析Token的中间件

npm i [email protected]

 2,创建config.js文件

//这是一个全局配置文件

module.exports={
    //加密和解密 Token 的密钥
    jwtSecretKey:'ai xiao su ^_^',
    //token 的有效期
    expiresIn:'1h'
}

 3,在app.js中注册路由之前 配置Token中间件:
 

// 导入配置文件
const config = require('./config')

// 解析 token 的中间件
const expressJWT = require('express-jwt')

// 使用 .unless({ path: [/^\/api\//] }) 指定哪些接口不需要进行 Token 的身份认证
app.use(expressJWT({ secret: config.jwtSecretKey }).unless({ path: [/^\/api\//] }))

4,在 app.js 中的 错误级别中间件 里面,捕获并处理 Token 认证失败后的错误:

// 错误中间件
app.use(function (err, req, res, next) {
  // 省略其它代码...

  // 捕获身份认证失败的错误
  if (err.name === 'UnauthorizedError') return res.cc('身份认证失败!')

  // 未知错误...
})

 如果使用时express-jwt模块时报错:algorithms is not defined

2020.7.7日jwt更新之后,安装的express-jwt模块会默认为6.0.0版本,更新后的jwt需要在配置中加入algorithms属性,即设置jwt的算法。一般HS256为配置algorithms的默认值:

使用express-jwt模块时报错:algorithms is not defined_Z_Gleng的博客-CSDN博客

你可能感兴趣的:(node,中间件,node.js,前端)