Добавление знака Google в приложение Expo и обработка сеансов на стороне сервера

#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, чтобы получить a refreshToken и a accessToken , используемые для выполнения вызовов различных 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. Так расстраивает.