трепетать google_sign_in auth без запуска браузера - PullRequest
0 голосов
/ 29 сентября 2019

Я хочу использовать Flutter для входа в Google (https://pub.dev/packages/google_sign_in) пакет без firebase. Я успешно реализовал его с помощью следующего кода:

  GoogleSignIn _googleSignIn = GoogleSignIn(
    scopes: [
      'email',
      'https://www.googleapis.com/auth/contacts.readonly',
    ],
  );

  Future<void> _handleSignIn() async {
    try {
      await _googleSignIn.signIn();
    } catch (error) {
      print(error);
    }
  }

//...
     child: FlatButton(
        onPressed: () => _handleSignIn(),
//...

Тем не менее, это запускает oauth в браузере. Как я могу остановить запуск браузера и вместо этого показать тот приятный диалог, который открывается для oauth?

Я видел примеры работы пакета флаттера google-sign-in вв сочетании с аутентификацией firebase для аутентификации в приложении. Но можно ли обойтись без аутентификации firebase?

Я также читал здесь ( Чем OAuth 2 отличается от OAuth 1? ) что oauth 2.0 - это то, что мне нужно использовать для аутентификации в приложении. Означает ли это, что я не могу использовать пакет входа в Google? Кажется, этот пакет использует только oauth1. Это правильно?

Я также видел этот флаттерный пакет oauth2.0 (https://pub.dev/packages/oauth2). Возможно ли использовать его в сочетании с входом в Google для обеспечения работы аутентификации в приложении вместо запуска браузера?

ЯНемного смущен тем, как все связано друг с другом, любая помощь приветствуется. Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Я понял, что причина этого в том, что я на симуляторе iphone.

0 голосов
/ 30 сентября 2019

OAuth 1.0 устарела и не должна использоваться.

OAuth 2.0 требует, чтобы «пользователь» предоставил авторизацию для делегирования разрешений вашему приложению. OAuth 2.0 был разработан для предотвращения совместного использования учетных данных (паролей) и Google, поскольку сервер авторизации в вашем случае не позволит вам открыть диалоговое окно, которое потенциально может предоставить вам доступ к учетным данным пользователя.

Вы должны представитьболее подробную информацию о вашем конкретном сценарии использования.

Возможно, вы сможете использовать что-то вроде OAuth 2.0 Грант авторизации устройства

Вы можете, используя код, настроитьсокет для прослушивания ответа сервера авторизации для получения токена доступа (и, возможно, обновления).

...