如何撤销Identityserver4中的刷新令牌?

时间:2019-10-24 07:12:29

标签: identityserver4

我需要按用户和客户端撤消刷新令牌。但是我不确定该怎么做。

我可以使用revoke endpoint获得刷新令牌吗?

还是我需要编写代码。我在Identity中使用EF,在启动时,我有:

AddOperationalStore(options => ....) 

删除令牌似乎有两种选择:

  • IPersistentGrantStore:RemoveAllAsync(字符串subjectId,字符串clientId)
  • IRefreshTokenStore:RemoveRefreshTokensAsync(字符串subjectId,字符串clientId)

我可以使用哪个?

还是应该按照this article中的说明实施删除代码?

1 个答案:

答案 0 :(得分:0)

如果您需要撤销给定 SubjectId/ClientId 组合的所有令牌,则不能使用您在问题中列出的撤销端点。这旨在撤销单个令牌。

您链接的文章是关于不使用 ASP.NET Core Identity。这是另一回事,应该不会影响您删除用户的所有刷新令牌的愿望。

要走的路确实是使用 IRefreshTokenStore.RemoveRefreshTokensAsync 方法,您可以在其中提供 SubjectId 和 ClientId。这并不一定会“撤销”令牌,而是将它们全部从数据库中删除。