JWT认证机制
安装两个包后进行导入
// TODO_01:安装并导入 JWT 相关的两个包,分别是 jsonwebtoken 和 express-jwt
const jwt = require('jsonwebtoken')
const expressJwt = require ('express-jwt')
定义一个随意的密钥
// TODO_02:定义 secret 密钥,建议将密钥命名为 secretKey
const secretKey = 'abcsdasddhahaha'
生成一个token字符串
// TODO_03:在登录成功之后,调用 jwt.sign() 方法生成 JWT 字符串。并通过 token 属性发送给客户端
//接受三个信息,用户信息对象,加密的密钥,配置对象
const token = jwt.sign({username:userinfo.username},secretKey,{expiresIn:'30s'})
res.send({
status: 200,
message: '登录成功!',
token: 'token' // 要发送给客户端的 token 字符串
})
})
将token字符串解析json
// TODO_04:注册将 JWT 字符串解析还原成 JSON 对象的中间件
//配置成功express-Jwt就可以把解析出来的用户信息挂载到req.user
app.use(expressJwt({secret:secretKey}).unless({path: [/^\/api\//]}))