事情是如何设置的:
我有一个前端门户和身份服务器:
• 前端门户(角度)使用 oidc 客户端进行身份验证
• 当用户访问前端门户时,他会被重定向到身份服务器进行登录
• 成功验证后,我在身份服务器中设置声明,用户被重定向到带有 id_token 和 access_token 的前端门户
• 我可以使用 oidc 客户端的用户 (user.profile) 访问声明
问题/问题:
例如,如果我更新用户的名字,如何立即更新用户声明,以便最终用户可以立即看到他的更改?在这种情况下是注销然后登录是强制性的,还是无论如何我可以更新索赔?
• OIDC 配置:
OIDC_SETTINGS: UserManagerSettings = {
authority: environment.IdentityServer,
client_id: 'client_id',
redirect_uri: environment.portal + '/callback',
response_type: 'id_token token',
scope: 'openid profile ',
post_logout_redirect_uri: environment.portal,
automaticSilentRenew: true,
silent_redirect_uri: environment.portal + '/refresh',
includeIdTokenInSilentRenew: true
};
• 在身份服务器中,我在登录成功后设置声明,并使用GetUserClaims方法
await HttpContext.SignInAsync(user.Id.ToString(), user.FullName, props, (await _identityManager.GetUserClaims(user)).ToArray());
• GetUserClaims方法的示例
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Email, user.UserName));
并且“电子邮件”声明类型应位于“个人资料”身份资源的 UserClaims 数组中
我希望这有帮助!先感谢您 :)