#react-native #google-signin #expo
#react-native #google-вход #expo
Вопрос:
Окружающая среда
- React Native
0.62
- Версия Expo SDK:
37
- Платформы (Android и iOS):
Контекст
Привет, я создаю приложение с помощью Expo client и хотел бы добавить вход в Google. Я уже создал идентификаторы клиентов iOS и Android из консоли платформы разработчика Google.
В принципе, я хочу делать то, что делают StackOverflow и многие другие:
- Попросите пользователя разрешить приложению доступ к информации о своем профиле Google и электронной почте в первый раз
- Зарегистрируйте их как нового пользователя в моей серверной базе данных, используя полученные данные
- После первой авторизации пользователь может напрямую войти в приложение с помощью Google без повторной авторизации
- Мой внутренний API будет обрабатывать сеансы пользователей, независимые от Google, что позволяет пользователю оставаться подключенным к приложению, даже когда он выходит из своей учетной записи Google
- Если пользователь уже вошел в свою учетную запись Google, приложение автоматически зарегистрирует его в своей учетной записи.
Я уже несколько недель читаю документацию Google и документацию Expo и чувствую себя очень смущенным, потому что есть много решений, но все они кажутся очень неоднозначными: expo-google-sign-in
, expo-google-app-auth
, expo-app-auth
, expo-auth-session
Мои вопросы:
- Насколько я понимаю
expo-google-app-auth
, используется для авторизации OAuth 2.0, чтобы получить arefreshToken
и aaccessToken
, используемые для выполнения вызовов различных API Google. С другой стороныexpo-google-sign-in
, используется для того, чтобы пользователь мог войти в свою учетную запись Google. Это правильно? - Если я не ошибаюсь,
expo-google-sign-in
то это то, что я должен использовать для своего приложения, верно? проблема в том, что он не работает с клиентом Expo, только в автономных приложениях, согласно документам Expo. Так что я действительно не знаю, что делать! - Существуют ли какие-либо учебные пособия или курсы о том, как создать приложение React Native (с использованием Expo и Expo Client) с помощью входа в Google и обработки пользовательских сеансов на стороне сервера?
Комментарии:
1. Я чувствую то же самое по этому поводу. Так много «решений» одной и той же проблемы, и мне кажется, что
expo-auth-session
это правильный путь, поскольку другие пакеты устарели. Хотя документация не ясна, в ней даны инструкции о том, как получить идентификаторы поставщиков, но нет реального примера. Вам удалось заставить его работать?2. Для меня
expo-google-app-auth
работает отлично, и у меня нет проблем с этим. Вы тоже должны его использовать3. Может быть, это у меня над головой, но вы вообще заглядывали в firebase? Я слышал смешанные вещи, но вход в Google кажется довольно простым в реализации
4. Кто-нибудь здесь решил эту проблему и может поделиться примером? Я застрял на этом в течение нескольких дней, пробуя несколько пакетов expo для выполнения аутентификации на стороне сервера без какого-либо успеха…
5. Это именно то разочарование, которое я испытываю в настоящее время. Похоже, что, возможно, стоит попробовать expo-google-app-auth, даже если он устарел. Я получил expo-auth-session, работающий с Google, но, хоть убейте, я не могу понять, как обновить токен. Я смог получить токен обновления с некоторыми доработками, но затем не могу обновить accessToken. Так расстраивает.