Expo — Реакция — Авторизация с Google не работает в автономном режиме, если тип ответа: «id_token»

#react-native #oauth #expo #google-authentication

Вопрос:

Я пытаюсь авторизовать вход в Google с помощью Google from expo-auth-session/providers/google"; .

Мне нужно получить конкретный тип ответа, который таков id_token . В expo это работает, Google возвращает все, что мне нужно, но в автономном режиме Google выдает ошибку, что такой тип ответа не поддерживается. Если я опущу это свойство, все будет работать нормально, но я не получу id_token, так что это мне не поможет.

Я хотел знать, есть ли обходной путь для этого ?

Ответ №1:

Альтернатива 1 — Добавить responseType: 'id_token' в useAuthRequest

 const [requestIdToken, responseIdToken, promptAsyncIdToken] =
    Google.useAuthRequest({
      responseType: 'id_token',
      androidClientId: GOOGLE_CLIENT_ID_ANDROID,
      iosClientId: GOOGLE_CLIENT_ID_IOS,
      expoClientId: GOOGLE_CLIENT_WEB_EXPO,
      scopes: ['profile', 'email'],
   })
 

Альтернатива 2 — Попробуйте изменить свой useAuthRequest useIdTokenAuthRequest

Ответ №2:

Замена useAuthRequest на `useIdTokenAuthRequest отлично сработала для меня.

В документах они показаны только useIdTokenAuthRequest для использования с firebase, но он работает со всеми теми же аргументами, что и обычный useAuthRequest метод