Как синхронизировать Firebase Auth с MySQL DB через iOS (swift)? - PullRequest
0 голосов
/ 15 февраля 2019

Я создаю функциональность SignUp / LogIn / Saving в приложении iOS.

Для SignUp / LogIn я выбираю «Firebase Auth».
Но Firebase Auth может сохранять только основные свойства (например,адрес электронной почты, пароль, URL и т. д.)
Итак, чтобы сохранить другие свойства пользователя, я планирую отдельно использовать дополнительную БД MySQL (создав пользовательскую БД, пользовательскую таблицу, первичный ключ userID и другие столбцы)

Для связи с Firebase Auth и MySQL я обнаружил, что проверка пользователя обязательна.
И для проверки будет использоваться JWT (Json Web Token).

Но, чтобыпроверяйте пользователей с помощью JWT, я думаю, что и Firebase Auth, и MySQL должны заранее иметь общий ключ (такой как ID пользователя, адрес электронной почты и т. д.).

Но я не уверен, является ли это обычным способом(просто и безопасно) или нет.

Я прочитал несколько потоков,

Безопасное хранение пользователей Android Firebase Auth в базе данных MySQL
Можетя создаю приложение для Android, которое использует аутентификацию Firebase, но пользовательскийбаза данных (например, MySQL)
Firebase, как использовать службу аутентификации с узлом.js RESTapi Backend

Но я не смог получить первый шагэтот процесс.

У меня есть вопросы на данный момент.



Вопрос1.Пока что я правильно понял?

Вопрос2.Чтобы проверить пользователя, на шаге SignUp нужно ли заранее сохранять общий ключ в Firebase Auth и MySQL?

Вопрос2-1-1.(Если да) Разве это не было бы проблемой безопасности при наличии идентичных данных в Firebase Auth и MySQL?(Конечно, я не должен сохранять никакие другие личные данные (пароль, номер телефона и т. Д.) В MySQL)

Question2-1-2.(Если да) Что вы думаете о лучших данных для общего ключа?(идентификатор пользователя, адрес электронной почты, автоматически увеличиваемый идентификатор пользователя и т. д.)

Вопрос2-2.(Если нет) Как я могу синхронизировать Firebase и MySQL через iOS?

Вопрос3.Тогда весь этот процесс является правильным?

  1. Настройка iOS, Firebase Auth, MySQL
  2. Когда пользователь регистрируется, адрес электронной почты (и, возможно, также идентификатор пользователя) будет отправлен как в Firebase Auth, так и в MySQL.Но пароль будет отправлен только в Firebase.
  3. Во время входа в систему, если пользователь установит и сохранит настройки, iOS будет публиковать данные в строке 'userID' в таблице 'user' в MySQL.
  4. Когда пользователь снова войдет в систему, iOS получит токен от Firebase Auth и отправит в MySQL.
  5. Токен будет использован для проверки пользователя путем сравнения расшифрованного токена и MySQL.общий ключ.
  6. Если проверено, MySQL отправит другие свойства пользователя в iOS.
  7. iOS получит данные свойств пользователя.



Это мой первый опыт создания этой функциональности.
Пожалуйста, ответьте на мой вопрос!
Заранее спасибо!



1 Ответ

0 голосов
/ 15 февраля 2019

Нет, вам не нужно заранее хранить общий ключ.

Вы получите JWT на своем клиенте (устройстве iOS), когда пользователь выполнит вход. Затем вы прикрепите этот JWT кзаголовок для каждого запроса к вашему серверу.Затем на вашем сервере вы будете использовать этот JWT для аутентификации с помощью Firebase, которая в случае успеха вернет вам идентификатор пользователя.И это вы можете хранить в своей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...