Я пытаюсь аутентифицировать пользователей с помощью Apple в Интернете (что необходимо, так как у нас также есть приложение для iOS и опция входа в Facebook, и мы должны также выполнить вход с помощью Apple, иначе Apple откажется наше приложение обновляется на стороне iOS), и вот мои метатеги (с удаленной конфиденциальной информацией), как в примере Apple:
<meta name="appleid-signin-client-id" content="com.myapp">
<meta name="appleid-signin-scope" content="name email">
<meta name="appleid-signin-redirect-uri" content="https://my.return.url">
<meta name="appleid-signin-state" content="x login">
<meta name="appleid-signin-nonce" content="some number">
<meta name="appleid-signin-use-popup" content="false">
Когда пользователь нажимает кнопку, он запрашивает правильное имя и / или адрес электронной почты:
Я продолжаю, и мой URL-адрес перенаправления вызывается должным образом. Однако, когда я декодирую возвращенный id_token
, я вижу только поля email
и email_verified
в дополнение к полям, связанным с JWT. У меня нет ничего, связанного с именем пользователя. Я знаю, что поле имени заполняется только при первой аутентификации, так что это происходит после нового входа в систему после удаления моего приложения из моего Apple ID со страницы приложений и веб-сайтов с использованием страницы Apple ID. Если я изменю appleid-signin-scope
в метатегах на name
, я тоже не получу письма, так что это значение каким-то образом будет уважаться. Я также ничего не касался поля имени, как на скриншоте (я мог продолжить работу с помощью Touch ID, даже не нажимая ничего), но id_token
может иметь только адрес электронной почты, а не имя. Мне нужно получить имена пользователей в дополнение к электронной почте, чтобы завершить регистрацию, и я вынужден добавить параметр входа с помощью Apple, чтобы отправлять любые обновления в мое приложение iOS. Многие люди сообщают, что они получают это имя только в первый раз (как ясно заявляет Apple), но я не понимаю его даже в первый раз.
Что я делаю неправильно?