【发布时间】:2018-11-14 08:29:43
【问题描述】:
我想为我的 Angular 应用程序实施单一用户会话功能,因为我的客户与他们的同事共享一个帐户。
目前的问题,与我的实施有关。正在撤销存储在客户端本地存储中的有效令牌,尤其是有效的刷新令牌。
场景是:
- 用户 1 使用有效的用户名和密码登录,承载令牌将在一个小时后过期,刷新令牌将在两周后过期
- 用户 2,两小时后使用相同的用户名和密码。系统提示用户 2 他们已在另一台设备上登录,并询问他们是否希望使该会话过期并开始新会话。
- 用户 2 说是,现在用户 1 的会话无效。
问题是用户 1 仍然有一个有效的刷新令牌。
我无法撤销此刷新令牌。我的 Auth API 将接受是有效的,我不知道它是用户 1 还是用户 2 的刷新令牌。
我是否需要开始在我的数据库中存储刷新令牌值来解决此问题?我还认为我可以为 User1 和 User2 使用不同的 JwtAuthKeyBase64,以使 User1 的令牌无效,但这似乎不是使用 ServiceStack JwtAuthProvider 的好方法。
【问题讨论】:
标签: servicestack