当我想使JWT令牌无效时,JWT和Session-cookie之间有什么区别



当我阅读JWT文档时,我知道我们不需要使用会话来保存用户数据,因为它已在请求标题中加密,而JWT实际上是无状态的。

,但是我想删除JWT令牌,如果我的用户停用了。

在这种情况下,在我的JWK中间软件中,在验证令牌后,我必须在mongoDB中查询查询以检查该用户是否处于活动状态或停用。

因此,它不是无状态的,另一方面,对于MongoDB来说,它是一个很大的过载,因为MongoDB不是保存会话的好数据库!所以我需要redis ..如果我想使用redis,session和cookie和jwt之间有什么区别?

,如您所提到的,JWT令牌可以携带任意与用户相关的信息。通信仍然无状态,因为服务器不记得在先前请求中该特定客户端的状态是什么。您必须用每一个请求提供上下文,以JWT令牌的形式进行。

只要上下文很小,就可以将其全部放在令牌中。当有很多上下文时,每个请求都会不再是最佳的。这是您需要切换到后端存储状态的时候。

在此范围内,JWT和Cookie是在请求之间携带上下文的类似机制。当您必须确定是否应使用后端会话存储来减少每个请求中传输的数据的大小时,它们都受到大小边界的约束。

最新更新