2017-01-09 8 views

ответ

2

Я не думаю, что есть реализация непосредственно в Flutter Dart

Но, возможно, используя собственную реализацию и взаимодействовать с Java/Swift код. Вы можете создавать свой пользовательский интерфейс и запускать собственный рабочий процесс OAuth из флаттера.

https://github.com/flutter/flutter/tree/master/examples/hello_services

1

Google входа в существует для флаттера через google-sign-in пакет. За дополнительной информацией обращайтесь к Firebase for Flutter codelab.

AFAIK, еще не существует Facebook-входа в пакет для Flutter (хотя он существует в Dart для серверной части). Написание такого пакета должно быть интересным упражнением ...

3

По состоянию на декабрь 2017 года существует решение для входа в систему Facebook, а также 1 для входа в Facebook с Firebase для создания FirebaseUser для Facebook. Начальная Facebook Connect Войти Пакет может быть найден @https://pub.dartlang.org/packages/flutter_facebook_connect

Это требует следующего Webview пакета, который перенаправляет на Facebook, страницу входа @https://pub.dartlang.org/packages/flutter_webview_plugin

И пользовательские кнопки могут быть реализованы как так ...

final _facebookConnect = new FacebookConnect(
      appId: '<APP_ID>', 
      clientSecret: '<CLIENT_SECRET'); 

FacebookOAuthToken token = await _facebookConnect.login(); 

token может быть использован с FirebaseAuth как так ...

await FirebaseAuth.instance.signInWithFacebook(accessToken: null); 

Несколько дополнительных шагов, но в целом довольно прямое исполнение. Там также метод Firebase_Connect для реализации кнопки FacebookLogin ...

new FacebookLoginButton(
      appId: '<APP_ID>', 
      clientSecret: '<CLIENT_SECRET>', 
      scope: [FacebookAuthScope.publicProfile], 
      onConnect: (api, token) { 
      ... 
      }), 

Google Вход в систему еще проще. Просто добавьте пакет Google_SignIn от https://pub.dartlang.org/packages/google_sign_in и добавьте следующий код к своей пользовательской кнопке Flutter ...

GoogleSignInAccount googleUser = await _googleSignIn.signIn(); 
     GoogleSignInAuthentication googleAuth = await googleUser.authentication; 
     await FirebaseAuth.instance.signInWithGoogle(
      idToken: googleAuth.idToken, accessToken: googleAuth.accessToken);