授权验证选择 jwt 还是 session

2019-10-23 17:32:02 +08:00
 bsg1992

大家开发一般在授权认证上使用为什么方案 1.jwt 优点是无状态,缺点 服务端不可控例如强制登出 2.session 优点 可控服务端为得维护状态,缺点 服务端有额外开销,分布式涉及到同步问题

2606 次点击
所在节点    程序员
7 条回复
workspace
2019-10-23 17:44:09 +08:00
分布式涉及到同步问题,使用 redis 需要考虑吗
luckyrayyy
2019-10-23 17:45:37 +08:00
都说 jwt 适合单次或短时校验。
另外 jwt 有点问题就是服务端不能主动控制登出,另外安全问题也得考虑。
workspace
2019-10-23 17:46:01 +08:00
只用过 session 觉得挺好哈哈 不同场景不同使用吧
racecoder00
2019-10-23 17:49:00 +08:00
就是鉴权选择分布式还是集中的吧
tabris17
2019-10-23 17:50:25 +08:00
JWT 过期时间设短一点,对于实时性要求不高的应用足够了。
passerbytiny
2019-10-23 17:51:24 +08:00
两者可以同时用的——JWT 外加用户状态用于首次登录,session 用于跟踪。当然 session 要基于 redis、文件或其它独立存储做定制,并且此时 JWT 仅相当于 cookie。
abcbuzhiming
2019-10-23 18:02:53 +08:00
* jwt 只适合短期认证
* jwt 是把状态保持从服务器移动到了客户端
* 只要你不得不在服务端保存状态(比如你说的服务器可控强制踢出),那么 jwt 就不在合适,jwt 付出了传输内容膨胀的代价,就为了让服务器不保存状态,所以一切需要在服务器保存状态的需求,都不适合 jwt
* session 你也可以不用,你完全可以自定义一种比 jwt 简单的多的 token,然后把 token 的保存后移到缓存层,这样你的 http 接入层仍然是无状态的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/612196

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX