Gin(十五):JWT使用续

原文首发 https://youngxhui.top

Gin 教程叕来了(说好的大结局呢?),这次主要是来说明 JWT 存在的一些问题和解决方案。如果你还不知道 JWT 是什么,建议了解一下,也可以翻翻前面的文章看看。

💊问题所在

上次写 JWT 的时候,和群里的小伙伴讨论,有小伙伴提出了一些问题,用户修改密码或者注销账户怎么办?

是啊,怎么办?

我们都知道 JWT 是否有效,靠的是失效时间,而且服务器不对用户 JWT 进行保存,也就是一旦签发了的 JWT ,服务器失去了对其的控制权,只能等其过期而失效。如果这样,那么用户修改密码或者注销之后,之前的 JWT 仍旧还可以使用,那么就会带来安全风险。

于是乎,我默默的打开了百(gu)度(ge)

🙄🙄🙄🙄🙄🙄

你们为什么要把 JWT 存在 redis 里?

这是什么操作?一旦服务器去保存 JWT,还用什么 JWT ?普通 token 就完全可以了啊,何必多此一举。

以上就是我们在使用 JWT 的时候产生的问题。

🀄解决问题

既然有了问题,就要解决。

再次回顾一下 JWT 的使用流程。

  1. 浏览器发出登录请求,将账号和密码提交到服务器;

  2. 服务器创建 JWT 并且加密(并不是全部加密,仅仅加密 VERIFY SIGNATURE);

  3. JWT 返回浏览器;

  4. 访问需要授权的接口,将 JWT 携带在Header;

  5. 校验 JWT ,并且从 JWT 获取 JWT

  6. 响应浏览器。

上面的六个步骤就是 JWT 使用的过程。服务器只做了两步,生成 JWT 和校验 JWT 。而我们解决上述提出的问题,就在服务器端解决。

我们都知道在加密的时候服务器端会保存一个密钥,而校验解密的时候就需要这个密钥,这个密钥就是我们解决该问题的 KEY

如果我们把密钥设成动态的,用户密码修改或者注销的时候,该密钥就会发生改变,那么之前签发的 <

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值