【发布时间】:2019-01-11 07:09:48
【问题描述】:
我正在关注 angular-oauth2-oidc 文档中的隐式工作流示例。
在我的 Angular 应用程序中一切正常,我可以登录(在此期间我被重定向到 Identity Server),获取我的令牌并使用此令牌访问我的 Web Api。
但是,我注意到“given_name”声明为空,因此登录页面上不显示用户名。具体来说,示例代码中的以下方法似乎返回 null:
public get name() {
let claims = this.oauthService.getIdentityClaims();
if (!claims) return null;
return claims.given_name;
}
我认为这可能是权限问题,但我的范围设置为:
scope: 'openid profile email api1',
知道我需要更改什么来获得这个“given_name”声明吗?
【问题讨论】:
-
你解决了吗?我遇到了同样的问题,我不确定在按照 angular-oauth2-oidc 中的步骤操作后我做错了什么。即使在我登录身份服务器后,claims.given_name 也始终为空。
-
我想通了。我通过在客户端设置中将“AlwaysIncludeuserClaimsInIdToken”的值设置为 true 解决了我的问题
-
@SetrákusRa 很好,很高兴听到您找到了解决方案。也许将其作为答案发布,以便其他人可以轻松发现?
-
杰罗恩,感谢您的提醒!我把它贴在答案部分。希望这可以帮助可能遇到相同问题的其他人。
标签: identityserver4 angular-oauth2-oidc