Авторизация в приложении Android Studio с использованием FireBase

Рейтинг: 0Ответов: 1Опубликовано: 31.03.2023

Хочу использовать кастомный ввод данных, т.е. FireBase предлагает авторизацию Email/pass но мне например нужно использовать вместо e-mail другой вид логина, кто то сталкивался с этим или есть мб похожий сервис, где это предусмотренно.

Ответы

▲ 0

Сделать такое можно. Можно сделать официально поддерживаемым способом в том числе. Однако вам, кажется (далее мои предположения), это просто не нужно. Для корректной реализации потребуется поднимать свой сервер и на нём писать код авторизации и хранения данных юзеров. На клиенте также понадобится отправлять данные юзера (помянутые вами login-password) на сервер и получать от него сгенерированный JWT-токен, который вы потом передаёте в Firebase для авторизации в его системе.

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

https://firebase.google.com/docs/auth/android/custom-auth?hl=ru

Вот что нужно делать на стороне сервера:

https://firebase.google.com/docs/auth/admin/create-custom-tokens?hl=ru#ruby


Если мои предположения верны и вам нужен простейший способ авторизации без сервера, то, весьма вероятно, получится сломать описанную выше схему убрав сервер и хранение на нём данных юзера, если вы сможете программно на клиенте сформировать JWT-токен на основе login-password. Однако это будет зияющей дырой в безопасности, т.к. JWT-токен надо шифровать приватным ключом, который вам придётся в код приложения встроить и, тем самым, сделав его общедоступным.

Однако, как видно из вышеописанного простейший способ перестаёт таким быть в виду сложности создания JWT-токена и необходимостью публикации приватного ключа шифрования или создания собственного сервера.

Скорее всего вам стоит просто использовать систему авторизации через email и/или соц.сети, которые не потребуют поднятия своего сервера или нарушения протоколов авторизации.