JWT+redis 能替代 session 了吗?
session 最大的问题在于没有办法降级。
JWT 降级的手段就很多了,Redis 用来做补偿,比如生命周期的管理。踢掉用户等等…
基于 JWT 的方案对不 session 还有什么缺点呢?
session 最大的问题在于没有办法降级。
JWT 降级的手段就很多了,Redis 用来做补偿,比如生命周期的管理。踢掉用户等等…
基于 JWT 的方案对不 session 还有什么缺点呢?
但这样其实抛弃了 JWT 或者说 Client side session 的不少优势:
Redis 的引入导致需要依赖服务端。
服务端的引入导致需要专门处理 session 共享。
以及,如果想实现完整的生命周期管理,黑名单未必够用,可能需要引入白名单,此时这个方案实际上已经变成了 Server side session 了。
如果你做了 session 管理功能,就不应该让它处于一种不确定是否能用的状态。
从这个角度来看,如果 Redis 挂了,那理应将整个 session 认证部分停掉,而不是 “带伤上阵” 。
本质上来说,其实就是分了两种状态。
在日常状态下,将 client side session 的 session data 作为 server side session 的 session id 使用。
在 Redis 挂掉等奇怪的状态下,退化为完全使用 client side session 机制。
在日常状态下,这样其实吸取了两边的短处,性能、流量都有更多的压力。