зарегистрируйтесь и войдите в систему с регистрационным номером

# #android #firebase #authentication

Вопрос:

поэтому я создаю приложение для форума Android для своего кампуса колледжа. Я использую firebase для базы данных и аутентификации. но чего я не понимаю, так это пользовательской системы входа и регистрации с номером регистрации и паролем. Я не знаю, как это сделать. прежде чем вы предложите мне поискать его, я должен поделиться тем, что я уже просматривал в Интернете, включая переполнение стека и документацию по Android и firebase. любая помощь будет признательна. У меня есть метод signinwithcustomtoken в документации, но я не знаю, как его использовать.

Комментарии:

1. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.

Ответ №1:

Чтобы использовать пользовательскую систему аутентификации с Firebase, вам нужно будет подписать свои собственные токены, отправить их обратно клиенту, а затем использовать токен для входа в свое приложение.

Этот процесс будет выглядеть примерно так:

  • Пользователь передает свои учетные данные (номер регистрации и пароль) в вашу пользовательскую систему аутентификации (или стороннюю систему аутентификации) и проверяет эти учетные данные. Предполагая, что учетные данные действительны, система аутентификации затем вернет подписанный JWT (веб-токен JSON) на клиентское устройство (или использует Firebase admin-sdk для создания подписанного токена).
  • Затем клиент использует этот токен с signInWithCustomToken функцией в клиентском SDK для входа в ваше приложение Firebase таким же образом, как он использовал бы любой другой поддерживаемый метод входа (например, адрес электронной почты и пароль).

Это кажется большой дополнительной работой, когда вы просто хотите войти в систему с помощью чего-то и пароля.

Есть ли лучший способ?

То, что вы описали, вход с номером регистрации и паролем, очень похоже на вход с помощью электронной почты и пароля, которые включает Firebase. Жаль, что у нас нет электронной почты, чтобы это сработало…или у нас есть?

Вот альтернативное решение, которое может сработать для вас. Используйте createUserWithEmailAndPassword/signInWithEmailAndPassword и попросите пользователей ввести свой регистрационный номер и пароль. При отправке выполните дополнительную обработку, чтобы добавить свою projectId базу данных к номеру регистрации, например [Номер регистрации]@[projectId.com] (например 123456@my-project.com) и отправьте это в Firebase с помощью функции signInWithEmailAndPassword (или создайте учетную запись).

Это решение, конечно, предполагает, что вам не требуется проверка электронной почты.