撤消IdentityServer4中特定会话的访问令牌(引用)

时间:2018-06-18 07:22:35

标签: c# asp.net identityserver4

我正在使用IdentityServer 4隐式流程来引用令牌。 我自己实现了IPersistedGrantStore,它在MSSQL数据库中存储了授权,工作正常。

现在我想从前端撤消用户注销的引用令牌。因为我不想从前端调用撤销端点我想在IdentityServer中的AccountController.Logout(string logoutId)方法中隐式地执行它(这也包括从swagger ui注销)。

所以我在AccountController中注入IIdentityServerInteractionService,但是当我调用

await _interaction.RevokeTokensForCurrentSessionAsync();

LogOut-Method中撤销当前subjectid / user和clientid的所有令牌(调用方法IPersistedGrantStore.RemoveAllAsync(string subjectId, string clientId))。

但是我想撤销已注销的一个特定会话的令牌(该方法称为RevokeTokens ForCurrentSession Async)。

另一种方法是调用TokenRevocationClient.RevokeAsync,我需要准确的令牌才能通过。但在AccountController.LogOut我 只有logoutid和LogoutRequest(也不包含实际令牌)。

那么在用户注销时隐式撤销specific访问(引用)令牌的最佳解决方案是什么?

提前致谢...

0 个答案:

没有答案