Я оцениваю некоторые варианты аутентификации для React Native App, используя Expo и Firebase в качестве моего бэкэнда. Моя цель - сохранить одинаковый код между рабочим процессом Expo Client Managed и автономным приложением Expo (не извлечено).
Я бы хотел, чтобы Apple, Google и Facebook входили в систему с параметрами входа в приложение.
Я склоняюсь к следующему механизму аутентификации и хотел бы получить отзывы от сообщества.
Для входа в Google
- Используйте Expo AppAuth , чтобы сначала войти в систему.
- Затем, получив учетные данные авторизации от Google, используйте Firebase signInWithCredential
Примечание для Google Войти Я не использую знак Google или GoogleSignIn , поскольку они различаются между сборками клиента Expo (время разработки) и отдельной версией Expo (производство)
для Apple Аутентификация
Очень похоже на вышеприведенное -
- Используйте AppleAuthentication для входа в систему пользователя.
- Получив учетные данные аутентификации от Apple использует Firebase signInWithCredential
Для входа в Facebook
- Использование Expo AppAuth для входа пользователь сначала, используя (OAuth-провайдер facebook.com)
- n получив учетные данные авторизации от Facebook, используйте Firebase signInWithCredential
При таком подходе я смогу сохранить один и тот же путь к коду для dev и prod (изменяя только имя пакета или пакета) id).
Это правильный подход для Auth?