在用户注销的应用程序中,我将撤销该当前会话的引用和刷新令牌。这是一个API,因此其他设备可以登录到应用程序。我想提供从所有设备注销或注销的功能。
在我们注销时在Identityserver4中,我们可以使用吊销客户端来撤销令牌:
var client = new TokenRevocationClient(...);
//var result = await client.RevokeAccessTokenAsync(token);
//var result = await client.RevokeRefreshTokenAsync(token);
这反过来调用IReferenceTokenStore.RemoveReferenceTokenAsync(string handle)
。
现在,问题是如何为用户撤销所有令牌?这意味着它应该调用IReferenceTokenStore.RemoveReferenceTokensAsync(string subjectId, string clientId)
。
答案 0 :(得分:0)
您可以注入IIdentityServerInteractionService
的实例并调用RevokeTokensForCurrentSessionAsync()
。
这应该导致调用IReferenceTokenStore.RemoveReferenceTokensAsync(string subjectId, string clientId)
。