目前就是一个小项目。有 web 端和小程序端,所以想使用 jwt 作为鉴权的介质。
我的想法如下:
jwt 中携带的 payload 的数据结构为:
{
"user": {
"name": "xxx",
"uid: "123"
},
"uuid": "xxxxx"
}
其中,user 是存放当前登录用户的用户名和 UID。uuid 则是存放在 redis 的 key 值。
鉴权过程:
- 解析 jwt,若出错,则校验失败。
- 解析成功,拿到
uuid,去 redis 中获取数据,若不存在,则校验失败。 - 获取成功,对比
user.name和user.uid,若不匹配,则校验失败。 - 刷新 jwt 的过期时间。(是否需要进行?)
不知道这样能不能保证一定的安全性问题?