身份服务器 - 使用刷新令牌

时间:2017-12-01 19:16:26

标签: asp.net-core identityserver4

我在登录时来自数据库的访问令牌中加入了一些声明(例如entity_idrole)。现在在某个阶段,entity_id声明发生了变化,我需要获得一个包含更新声明的新访问令牌。我这样做是使用刷新令牌获取一个新的访问令牌,但它内部有相同的旧声明;可能是因为在刷新令牌的情况下没有调用实现IResourceOwnerPasswordValidator的类。那么如何在访问令牌中获取更新的声明?因为用户必须注销并重新登录,否则会更新entity_idrole声明。

我知道另一种选择是使用/userinfo端点来声明,但我的问题是在这种情况下,ASP.NET Core的[Authorize(Roles = "Manager")]属性如何工作并了解如果角色在访问令牌中不存在?

1 个答案:

答案 0 :(得分:1)

或者换句话说 - 经常更改的数据不适合作为令牌中的声明。

也就是说 - 在获取刷新令牌时,您可以让身份服务器再次运行配置文件服务管道 - 请参阅此处:

https://identityserver4.readthedocs.io/en/release/reference/client.html?highlight=UpdateAccessTokenClaimsOnRefresh