【发布时间】:2016-03-20 16:50:58
【问题描述】:
我知道 JWT 可以用来代替基于 cookie/session 的身份验证,我们在之前的项目中使用过,我知道使用 JWT 有很多好处,例如无状态,支持 CDN,避免 csrf 攻击,更好地支持集群ENV等。
但是,我对 JWT 是否可以完全取代 Session 感到非常困惑?如果我们想充分利用 JWT 来保留所有会话状态,那么这意味着无论何时服务器后端想要将任何状态添加到会话中,而不是这样做,服务器端必须使用该信息和客户端重新生成一个新令牌方必须更新新生成的令牌,我怀疑它是否正确?
如果我们只利用 JWT 来支持身份验证并只保留用户凭据信息,尽管身份验证服务可以作为独立的微服务解耦,但如果我们想的话,业务服务后端仍然需要会话保持一些会话状态,对吧?在阅读 spring 文档时,建议利用 Redis 保存会话状态以支持集群环境。
总的来说,我对是否可以使用 JWT 完全替换会话感到非常困惑?
非常感谢。
【问题讨论】: