Мы пробуем внешний вход в систему (Identityserver4) в. NET Ядро, и мы использовали внешнего провайдера, т.е. Google. мы можем получить данные, такие как имя, фамилия, адрес электронной почты и т. д. c пользователя Google, во время входа в систему. Но мы не можем получить номер телефона пользователя и другие дополнительные претензии.
Startup.Auth.cs
:
services.AddAuthentication().AddGoogle("Google", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.ClientId = "XXX";
options.ClientSecret = "XXX";
options.UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo";
options.ClaimActions.MapJsonKey(ClaimTypes.OtherPhone, "otherphone");
options.ClaimActions.MapJsonKey("urn:google:picture", "picture", "url");
options.ClaimActions.MapJsonKey("urn:google:locale", "locale", "string");
options.ClaimActions.MapJsonKey("urn:google:MobilePhone", "mobilephone", "string");
options.ClaimActions.MapJsonKey("urn:google:gender", "gender", "string");
options.ClaimActions.MapJsonKey("urn:google:birthday", "birthday", "date");
options.ClaimActions.MapJsonKey("urn:google:accesstoken", "AccessToken", "string");
options.ClaimActions.MapJsonKey(ClaimTypes.Gender, "gender");
options.SaveTokens = true;
});
Мы добавили options.ClaimActions.MapJsonKey("urn:google:MobilePhone", "mobilephone", "string");
эту строку, но мы не получаем номер мобильного телефона. Та же самая строка кода работает для картинки, но для мобильного номера не работает.