首页 > 解决方案 > 从 identityserver4 中的 PersistedGrantStore 密钥属性获取刷新令牌

问题描述

我已经在我的 postgresql 数据库中实现了我自己IPersistedGrantStorePostgresPersistedGrantStore存储授权,它工作得非常好。

现在我想真正向前迈进,我想从key我的 postgresql 表中存储的刷新令牌中获取刷新令牌。但从我读到的内容来看,它不是一个适当的刷新令牌,而是一个保护刷新令牌的哈希。有没有办法解密,从key属性中读取刷新令牌,可能使用来自identityserver api的功能?

我正在尝试实现自己的模拟工作流程,因此使用数据库中存在的最新刷新令牌的任何用户都可以轻松登录

标签: .net-coreidentityserver4

解决方案


Identity Server 4 对此有一个内置端点 - <server_url>/Connect/Token.

您需要向该端点发送一个 POST 请求,其x-www-form-urlencoded正文类型包括:

  • refresh_token:当前的 refresh_token
  • client_id:您正在为其刷新令牌的客户端
  • client_secret:客户端的秘密
  • 授予类型:刷新令牌

它会给你一个“刷新”的 access_token 以及一个新的 refresh_token。

登录后您应该收到的初始 refresh_token。请记住 - 一旦使用 refresh_token(获取新的 access_token),它就会失效。这就是为什么您在对端点的每个请求中都会收到一个新的。

是有关 refresh_token 本身的更多信息。在这里-关于令牌端点。


推荐阅读