关于最近圈内一直在看到有关 Jwt 和 Cookie 的推文,我只想说...

92 阅读1分钟

前言

  • 圈内最近(公众号、掘金、包括国外),一直高频率刷到相关文章。
  • 这里我想说一点,技术没有可比性,所处的背景,解决的问题都尽然不同。

我眼里的 Jwt 和 Cookie

  • 最早的时候开发PHP的时候,用的是 Cookie,众所周知,那就是一串不怎么长的字符串(画外音:所以会有 Cooike 碰撞攻击等风险),存储压力在服务端。
  • Jwt,按他的官方说法,基于密钥进行加密以及验证密钥有效性,任意端都可以通过特定的方法读取密钥里面公开的内容,优点:不在服务端存储,缺点:没法主动控制过期等相关操作。

我想说的是

  • 目前我项目用的都是 Jwt + cookieId 双结合,通过生成 cookieId 到 jwt 中,存到服务端(Redis这类),其他不重要的信息都可以塞到 jwt 里面
  • 这样做的好处,服务端可以随意控制 jwt 的过期等操作,别人也无法通过碰撞攻击(超算+服务端承受的住除外)

最后

  • 技术没有好坏之分,只有最适合的场景,一个技术无法满足,那就再结合另外的技术去满足业务方。
  • 最后杠精别杠,说 jwt 应该是无状态的,在我看来,能解决我业务的问题才是第一选择,至于他们说的规范,那只是人定的而已。