Изменение электронной почты и вход через Apple - PullRequest
0 голосов
/ 21 апреля 2020

В моем приложении я позволяю пользователю менять электронную почту. Для этого я использую api updateEmail .

Я использую Firebase Auth на iOS (Swift) и у меня доступна опция «Войти через Apple».

Здесь вот что сбивает с толку:

  1. У пользователя есть Apple ID с электронной почтой john@icloud.com. Это также электронная почта в Firebase. Таким образом, Apple ID и адрес электронной почты в Firebase идентичны: john@icloud.com. Это то, что используется для входа в Firebase Auth с помощью входа в Apple.
  2. Пользователь заходит в приложение и меняет свою электронную почту на new@gmail.com. Это делается с помощью updateEmail api.

ПРИМЕЧАНИЕ. У пользователя есть только 1 учетная запись, и это с Apple, использующей Вход с Apple. Пользователь никогда не создает вторую учетную запись. Переключение электронной почты происходит в одном аккаунте. Единственный способ входа - с помощью Apple.

В основном, если пользователь использует Вход с Apple и входит в систему как john@icloud.com, но затем изменяет свою электронную почту на new@gmail.com с помощью Firebase, UID в Firebase - это то же самое, что хорошо. Что сбивает с толку, так это то, что для входа в систему пользователь по-прежнему использует обычную электронную почту Apple: john@icloud.com (опция «Войти через Apple»). Адрес электронной почты в Firebase - new@gmail.com, но для входа в систему используется john@icloud.com.

В API нет ошибок. Однако следует ли разрешить пользователям изменять электронную почту в этом случае? Это нормально и ожидаемый опыт пользователя? Это сбивает с толку?

1 Ответ

0 голосов
/ 21 апреля 2020

Согласно do c,

Может произойти сбой, если уже существует учетная запись с этим адресом электронной почты, созданная с использованием аутентификации по электронной почте и паролю.

Так если updateEmail завершается успешно без ошибок в API, то new@gmail.com, скорее всего, относится к случаю аутентификации email / pw, но с тем же UID, который рассматривается как другой способ аутентификации (если вы можете войти в систему обоими методами, что, вероятно, не очень хорошо подписать 1 uid, чтобы иметь 2 метода входа (email / pw и AppleSignIn). Я обычно предлагаю обновить по электронной почте, если пользователь зарегистрирован по электронной почте / pw.

Если мое объяснение не имеет смысла, пожалуйста, исправьте меня> _ <</p>

...