我已经使用asp.net mvc网站设置了身份服务器4,并将其用于身份验证(隐式授予类型)。当用户修改帐户的个人资料时,我需要更新对令牌的声明,但事实并非如此。
一切顺利,客户端进行身份验证,然后重定向回网站,声明通过-一切都很好。
我的网站上有一个链接,该链接可将用户发送回IdentityServer,以更新配置文件(姓名,电子邮件,电话等),但是一旦完成配置并将用户发送回该网站,则索赔是不会使用新信息进行更新。
我可以看到我的用户声明工厂正在从概要文件服务中调用,并且在声明中设置了新的概要文件信息,但是我的网站似乎未接收到新信息。我可能会缺少什么?这甚至是正确的方法吗?
答案 0 :(得分:4)
用户登录后,声明信息将保存在cookie中。直到用户注销并再次登录这将不会被更新。您可能需要强行注销用户,以便用户必须在配置文件更新后再次登录。
但是,如果用户频繁进行个人资料更新,则可能需要重新考虑在id令牌中然后在声明中包含个人资料数据。身份服务器中有一个用户信息端点,您可以在需要时查询该端点以检索配置文件数据。 http://docs.identityserver.io/en/latest/endpoints/userinfo.html