Signicat OpenId 没有得到 nin 作为响应声明

Signicat OpenId not getting nin as response claims

我按照为 Signicat 添加的示例创建了一个网站 API https://github.com/signicat/Quick-start-guide-Authentication-.NET-Core

为了获取 nin 信息,我添加了这样的 for:

 options.Scope.Add("openid");
 options.Scope.Add("profile");
 options.Scope.Add("nin")

但作为回应,我得到 nin 为 null。我尝试通过以下方式从用户那里获取信息。

var user = HttpContext.User;
name = user.FindFirstValue("name");
nin = user.FindFirstValue("nin");

有什么我遗漏的吗?

注意:此nin是为此客户端配置的,并在通过POSTMAN进行手动请求时获取nin信息。

默认情况下,OpenIDConnect 处理程序会阻止所有未知声明,因此您需要使用类似

的代码显式映射您关心的声明
options.ClaimActions.MapUniqueJsonKey("nin", "nin");
options.ClaimActions.MapUniqueJsonKey("gender", "gender");
options.ClaimActions.MapUniqueJsonKey("birthdate", "birthdate");

您应该首先检查返回给客户端的原始令牌并验证 nin 声明是否确实存在,以确保客户端确实获得了所需的声明。