token解析的问题

来源:10-11 获取用户信息 API 开发(1-2)

godlanbo

2019-12-25

已经使用了express-jwt 解析验证了token了,可以从req.user中拿到信息,为什么还要写一个decode函数用jsonwebtoken去解析一次?

写回答

1回答

Sam

2019-12-25

你好,你的问题非常棒!事实上 express-jwt 中间件确实帮我们做了 token 解析,代码如下:

try {
  dtoken = jwt.decode(token, { complete: true }) || {};
} catch (err) {
  return next(new UnauthorizedError('invalid_token', err));
}

然后将解析后的内容传递到 req.user 对象中,这里主要使用了 jwt.decode 完成这个操作,而课程中介绍了另一种解法:

let token = req.get('Authorization')
if (token.indexOf('Bearer') === 0) {
  token = token.replace('Bearer ', '')
}
return jwt.verify(token, PRIVATE_KEY)

这两种方法都是可行的,不过直接用 express-jwt 传递的 req.user 会更加方便。jwt 一共只提供了三个 API,这样我们就都用到了:

decode: require('./decode'),
verify: require('./verify'),
sign: require('./sign'),


4
0

Vue Element+Node.js开发企业通用管理后台系统

基于Element的中后台课程,一套中小型企业通用的后台管理系统

2829 学习 · 1715 问题

查看课程