identityserver4 - 用户更新个人资料后如何更新 id_token
问题描述
我已经使用 asp.net mvc 网站设置了 identityserver 4,使用它进行身份验证(隐式授权类型)。当用户修改帐户的配置文件时,我需要更新令牌声明,但事实并非如此。
一切都在愉快的道路上运行良好,客户进行身份验证,然后重定向回网站,索赔通过 - 一切都很好。
我的网站有一个链接,可将用户发送回 IdentityServer 以更新配置文件(姓名、电子邮件、电话等),但一旦完成并将用户发送回网站,则声明不会更新与新信息。
我可以看到我的用户声明工厂正在从配置文件服务中调用,并且新的配置文件信息正在声明中设置,但是我的网站似乎没有获取新信息。我可能会错过什么?这甚至是正确的方法吗?
解决方案
用户登录后,索赔信息保存在 cookie 中。在用户注销并再次登录之前,它不会更新。您可能需要强制退出用户,以便他必须在配置文件更新后再次登录。
但是,如果用户经常更新个人资料,您可能需要重新考虑在 id-token 和声明中拥有个人资料数据。身份服务器中有一个用户信息端点,您可以在需要时查询该端点以检索配置文件数据。 http://docs.identityserver.io/en/latest/endpoints/userinfo.html
推荐阅读
- javascript - ol 层向量 getSource addFeature
- android - PlacePicker 已弃用
- java - 从扩展 AsyncTask 的类返回对象的问题
- javascript - 为什么anime.js 不为Firefox 或Microsoft Edge 中的left 属性设置动画?
- python-3.x - TypeError:“numpy.float64”对象不可迭代:(
- python-3.x - 如何绘制同一数据框中的多个项目?
- vb.net - 有没有办法用#IF 动态设置程序图标
- android - 应用内计费:是否可以撤消购买?
- c++ - 在多核机器上使用 boost asio 只能有 1 个线程
- c++ - C++ priority_queue 使用带有 lambda 比较器错误的映射