使用jwt auth时是否可以获得用户会话?

时间:2016-07-18 08:56:59

标签: authorization jwt

“电报”等应用程序具有“活动会话”功能,您可以在其中查看和终止当前用户的会话。使用会话和cookie来存储用户会话时,使用类似的功能并不是问题,但是如何使用jwt来制作它?

服务器不存储有关jwt的任何信息,因此甚至无法获取活动会话列表。我在考虑在用户登录时在数据库中存储其他信息,因此我们可以获取设备名称,类型等数据,以及存储访问令牌。然后,当用户想要杀死特定会话时,以某种方式使所需的访问令牌无效。

制作此功能的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

JWT是自包含的,不需要服务器会话,但在某些情况下,有助于在服务器上维护有关已颁发和活动令牌的一些信息。

例如,在更改用户凭据,权限或仅注销后设置已撤销令牌的黑名单(您无法完全信任客户端删除其数据)。不需要存储完整令牌,只需分配唯一标识符即可。并且只保留令牌的跟踪,直到到期时间。

另请注意,在您的用例中,可以在用户交互期间续订令牌,因此与用户相关的任何数据都应附加到新令牌。如果您的令牌有很长的到期时间,则需要持久化

我不会称之为“会话”,因为它会导致与传统方法的混淆