token解析的问题
来源:10-11 获取用户信息 API 开发(1-2)

godlanbo
2019-12-25
已经使用了express-jwt 解析验证了token了,可以从req.user中拿到信息,为什么还要写一个decode函数用jsonwebtoken去解析一次?
写回答
1回答
-
你好,你的问题非常棒!事实上 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'),
40
相似问题