Выставка Google OAuth с помощью expo-auth-session: redirect_uri_mismatch и flowName=GeneralOAuthFlow при использовании aIOS

Программируем под IOS
Ответить
Anonymous
 Выставка Google OAuth с помощью expo-auth-session: redirect_uri_mismatch и flowName=GeneralOAuthFlow при использовании a

Сообщение Anonymous »

Я создаю приложение Expo React Native и пытаюсь реализовать вход в Google, используя

`expo-auth-session` и `expo-auth-session/providers/google`.
Среда:

 – React Native (Expo Router)

 – Работа в Expo Go на iOS

 – клиент Google OAuth Идентификаторы, созданные в Google Cloud:

- Веб-приложение

- iOS

- Android

Код: Выделить всё

import { AntDesign } from '@expo/vector-icons';

Код: Выделить всё

import AsyncStorage from '@react-native-async-storage/async-storage';

Код: Выделить всё

import * as Google from 'expo-auth-session/providers/google';

Код: Выделить всё

import { useRouter } from 'expo-router';

Код: Выделить всё

import * as WebBrowser from 'expo-web-browser';

Код: Выделить всё

import React, { useCallback, useEffect, useState } from 'react';

Код: Выделить всё

import { Alert, Button, Pressable, Text, View } from 'react-native';

Код: Выделить всё

import IconFacebook from '../../../icons/IconFacebook';

Код: Выделить всё

import IconGoogle from '../../../icons/IconGoogle';

Код: Выделить всё

WebBrowser.maybeCompleteAuthSession();

Код: Выделить всё

export default function LoginScreen() {

Код: Выделить всё

  const router = useRouter();

Код: Выделить всё

  const [, setUserInfo] = useState(null);

Код: Выделить всё

  const redirectUri = 'https://auth.expo.io/@trieuman2705/bkoo';

Код: Выделить всё

  const [request, response, promptAsync] = Google.useAuthRequest({

Код: Выделить всё

    expoClientId:

Код: Выделить всё

      '8263....apps.googleusercontent.com',

Код: Выделить всё

    iosClientId:

Код: Выделить всё

      '8263...apps.googleusercontent.com',

Код: Выделить всё

    androidClientId:

Код: Выделить всё

      '8263332....apps.googleusercontent.com',

Код: Выделить всё

    webClientId:

Код: Выделить всё

      '8263332....apps.googleusercontent.com',

Код: Выделить всё

    scopes: ['profile', 'email'],

Код: Выделить всё

    redirectUri,

Код: Выделить всё

  useEffect(() => {

Код: Выделить всё

    console.log('Google redirectUri =', request?.redirectUri);

Код: Выделить всё

  }, [request]);

Код: Выделить всё

  // ...fetchUserInfo + UI omitted for brevity
На стороне Google Cloud мой клиент веб-приложения с идентификатором:

Код: Выделить всё

'8263332....apps.googleusercontent.com'
настроен этот URI авторизованного перенаправления:

Код: Выделить всё

https://auth.expo.io/@trieuman2705/bkoo
Поэтому я ожидаю, что при запуске в Expo Go с expoClientId/webClientId запрос OAuth будет использовать этот веб-клиент и перенаправлять URI.
Однако, когда я запускаю поток входа в систему и регистрирую сгенерированный запрос, я вижу следующее:

Код: Выделить всё

OAuth Request: {

Код: Выделить всё

  redirectUri: "https://auth.expo.io/@trieuman2705/bkoo",

Код: Выделить всё

  request: {

Код: Выделить всё

    clientId: "826333210617-dogrjmu5121isqo1gdnblogr23j6qh6b.apps.googleusercontent.com", // 

Подробнее здесь: [url]https://stackoverflow.com/questions/79833457/expo-google-oauth-with-expo-auth-session-redirect-uri-mismatch-and-flowname-gen[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»