В дополнение к комментариям Дэвида выше, я нашел на сайте поддержки разработчиков Apple связанную тему, которая привлекла официальный ответ, подтверждающий проблему:
Официальный ответ:
Здравствуйте, aslkdjalksdjasdasd,
Поведение корректное: информация о пользователе передается в ASAuthorizationAppleIDCredential только при первой регистрации пользователя. При последующих входах в ваше приложение с помощью функции «Вход через Apple» с тем же аккаунтом никакая информация о пользователе не передается; в ASAuthorizationAppleIDCredential возвращается только идентификатор пользователя. Рекомендуется безопасно кэшировать первоначальный объект ASAuthorizationAppleIDCredential, содержащий информацию о пользователе, до тех пор, пока вы не подтвердите, что аккаунт успешно создан на вашем сервере.
Патрик
Как отмечает один из разработчиков:
Подождите… Если по какой-то причине первый перенаправляющий запрос от Apple теряется по одной из многих очень распространённых причин, мы навсегда теряем этого пользователя, поскольку другого способа получить его информацию нет. Действительно ли нет никакого другого способа получить эти данные?
и другой:
Или, если что-то пойдет не так на нижнем уровне, клиенты будут жаловаться, а служба поддержки посоветует им зайти на сайт Apple ID, чтобы отозвать разрешение, чтобы они могли корректно зарегистрироваться заново. Я считаю, что это будет плохой опыт, и люди перестанут использовать этот механизм входа, если начнут сталкиваться с подобными проблемами.
Поэтому я не думаю, что можно безопасно использовать это в продакшене, к сожалению. Это станет настоящим кошмаром для поддержки.
Я предлагаю отложить эту задачу до тех пор, пока Apple не осознает проблему, которую создала: в попытке повысить безопасность, похоже, они пожертвовали надёжностью в чрезмерной степени.