Создайте проверку подлинности Firebase с использованием учетных данных другого веб-сайта

#firebase #flutter #firebase-authentication #token

#firebase #flutter #firebase-аутентификация #токен

Вопрос:

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

Я использую flutter и Firebase для создания приложения, но мне нужно проверить, является ли пользователь членом университета. Для этого он должен ввести свои учетные данные университета в мое приложение.

Это означало бы, что я должен получить токен аутентификации с веб-сайта университета, а затем передать его Firebase для доступа к данным приложения, верно? Если да, то как я могу войти в Firebase с помощью пользовательского токена? Я видел примеры, но все они сначала сами создают пользовательский токен (вместо того, чтобы извлекать его с веб-сайта)

Ссылка из того, что я нашел для пользовательского токена: ( https://firebase.google.com/docs/auth/admin/create-custom-tokens#:~:text=Firebase gives you complete control,via the signInWithCustomToken() method.)

Ответ №1:

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

 FirebaseUser.signInWithCustomToken(token: customToken);
  

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

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

1. Не знал, что я могу напрямую передать токен, созданный Uni, непосредственно в signInWithCustomToken(). Для моего университета уже есть центр сертификации, поэтому поправьте меня, если я ошибаюсь, но я полагаю, мне не нужен сервер узла для получения доступа? Кстати, спасибо за быстрый ответ!

2. Да, серверы узлов не являются необходимостью для получения токена. Хотя, как правило, рекомендуется выполнять и поддерживать легкое приложение. но если у вас есть ограничение по времени или какие-либо денежные ограничения для получения GCP, пожалуйста, продолжайте без сервера узла.