Как я могу получить firstName и lastName из входа в систему Apple с помощью IdentityServer4?

Я использую IdentityServer4 для аутентификации пользователей в своем приложении.

Я добавил Apple в качестве внешнего поставщика. Добавлены области: адрес электронной почты и имя. Apple заявляет, что они отправляют информацию о пользователях не в id_token, а в отдельной модели:

user: { "name": { "firstName": string, "lastName": string }, "email": string }

Похоже, электронная почта тоже добавлена ​​в id_token, и я действительно получаю ее во внешнем контроллере из заявок внешних пользователей. Но нет ни имени, ни имени, ни фамилии. Как я могу получить эту информацию с помощью IdentityServer4?

введите описание изображения здесь


person emp    schedule 16.07.2020    source источник
comment
как ты добавил яблоко? Вы использовали провайдера на github.com/aspnet-contrib/AspNet.Security.OAuth .Provider?   -  person nahidf    schedule 16.07.2020
comment
@nahidf, я добавил картинку с добавлением провайдера.   -  person emp    schedule 16.07.2020
comment
добавил ответ, там легче читать   -  person nahidf    schedule 16.07.2020


Ответы (1)


Вам нужно извлечь эти реквизиты из пользовательского объекта, возвращенного из яблока, как это делается на https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/blob/dev/src/AspNet.Security.OAuth.Apple/AppleAuthenticationHandler.cs#L167 Если вы используете расширение .AddApple на AspNet.Security.OAuth.Apple было бы проще, так как код уже есть. Оформить заказ docs для получения подробной инструкции.

person nahidf    schedule 16.07.2020