首页 > 解决方案 > 用户更新个人资料后如何更新 id_token

问题描述

我已经使用 asp.net mvc 网站设置了 identityserver 4,使用它进行身份验证(隐式授权类型)。当用户修改帐户的配置文件时,我需要更新令牌声明,但事实并非如此。

一切都在愉快的道路上运行良好,客户进行身份验证,然后重定向回网站,索赔通过 - 一切都很好。

我的网站有一个链接,可将用户发送回 IdentityServer 以更新配置文件(姓名、电子邮件、电话等),但一旦完成并将用户发送回网站,则声明不会更新与新信息。

我可以看到我的用户声明工厂正在从配置文件服务中调用,并且新的配置文件信息正在声明中设置,但是我的网站似乎没有获取新信息。我可能会错过什么?这甚至是正确的方法吗?

标签: identityserver4

解决方案


用户登录后,索赔信息保存在 cookie 中。在用户注销并再次登录之前,它不会更新。您可能需要强制退出用户,以便他必须在配置文件更新后再次登录。

但是,如果用户经常更新个人资料,您可能需要重新考虑在 id-token 和声明中拥有个人资料数据。身份服务器中有一个用户信息端点,您可以在需要时查询该端点以检索配置文件数据。 http://docs.identityserver.io/en/latest/endpoints/userinfo.html


推荐阅读