我是Flutter的新手,有什么方法可以使用 GOOGLE/FACEBOOK 与Flutter一起登录 .
谢谢
从现在开始添加这个迟到的答案有package, flutter_facebook_login 替换 flutter_facebook_connect . 这是一个有效的 main.dart 示例 . 请记住,您必须按照存储库中的说明跟踪所有configuration,并且必须配置一个Facebook应用程序:
flutter_facebook_login
flutter_facebook_connect
main.dart
import 'package:flutter/material.dart'; import 'package:flutter_facebook_login/flutter_facebook_login.dart'; import 'dart:async'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Facebook Login', theme: new ThemeData( primarySwatch: Colors.blue, ), home: new MyHomePage(title: 'Flutter Login Facebook'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { login() async { final facebookLogin = new FacebookLogin(); final result = await facebookLogin.logInWithReadPermissions(['email']); switch (result.status) { case FacebookLoginStatus.loggedIn: print(result.accessToken.token); break; case FacebookLoginStatus.cancelledByUser: print('CANCELED BY USER'); break; case FacebookLoginStatus.error: print(result.errorMessage); break; } } @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), floatingActionButton: new FloatingActionButton( onPressed: login, tooltip: 'Login With Facebook', child: new Icon(Icons.add), ), ); } }
单击右下方按钮时应该会看到登录屏幕,并在调试控制台上检查打印的响应:
这是现在的方法,因为该软件包实际上在Android和iOS上使用本机Facebook登录SDK . 所以没有理由使用Firebase或自己界面!
希望它有助于其他有Facebook登录麻烦的人 . 并且积分转到包创建者roughike
对于谷歌登录使用google_sign_in,这个包实际上非常成熟,更容易开始 .
截至2017年12月,有一个Facebook登录解决方案,还有一个用于Facebook登录Firebase以创建Facebook FirebaseUser . 最初的Facebook Connect登录包可以在@ https://pub.dartlang.org/packages/flutter_facebook_connect找到
它需要以下webView包重定向到Facebook的SignIn Page @ https://pub.dartlang.org/packages/flutter_webview_plugin
并且可以像这样实现自定义按钮......
final _facebookConnect = new FacebookConnect( appId: '<APP_ID>', clientSecret: '<CLIENT_SECRET'); FacebookOAuthToken token = await _facebookConnect.login();
然后 token 可以像_3028154那样使用......
token
await FirebaseAuth.instance.signInWithFacebook(accessToken: null);
一些额外的步骤,但整体相当直接的执行 . 还有一个 Firebase_Connect 方法来实现FacebookLogin Button ...
Firebase_Connect
new FacebookLoginButton( appId: '<APP_ID>', clientSecret: '<CLIENT_SECRET>', scope: [FacebookAuthScope.publicProfile], onConnect: (api, token) { ... }),
Google登录更加轻松 . 只需添加https://pub.dartlang.org/packages/google_sign_in中的Google_SignIn包,并将以下代码添加到自定义Flutter按钮...
GoogleSignInAccount googleUser = await _googleSignIn.signIn(); GoogleSignInAuthentication googleAuth = await googleUser.authentication; await FirebaseAuth.instance.signInWithGoogle( idToken: googleAuth.idToken, accessToken: googleAuth.accessToken);
我认为Flutter Dart中没有直接实现
但也许可以通过使用本机实现并与Java / Swift代码进行通信 . 您可以构建UI并从flutter触发本机OAuth工作流 .
https://github.com/flutter/flutter/tree/master/examples/hello_services
通过 google-sign-in 包存在Flutter的Google登录 . 查看Firebase for Flutter codelab了解更多信息 .
google-sign-in
AFAIK,还没有针对Flutter的Facebook登录包(尽管Dart中存在一个用于服务器端的包) . 写这样的包应该是一个有趣的练习......
4 回答
从现在开始添加这个迟到的答案有package,
flutter_facebook_login
替换flutter_facebook_connect
. 这是一个有效的main.dart
示例 . 请记住,您必须按照存储库中的说明跟踪所有configuration,并且必须配置一个Facebook应用程序:单击右下方按钮时应该会看到登录屏幕,并在调试控制台上检查打印的响应:
这是现在的方法,因为该软件包实际上在Android和iOS上使用本机Facebook登录SDK . 所以没有理由使用Firebase或自己界面!
希望它有助于其他有Facebook登录麻烦的人 . 并且积分转到包创建者roughike
对于谷歌登录使用google_sign_in,这个包实际上非常成熟,更容易开始 .
截至2017年12月,有一个Facebook登录解决方案,还有一个用于Facebook登录Firebase以创建Facebook FirebaseUser . 最初的Facebook Connect登录包可以在@ https://pub.dartlang.org/packages/flutter_facebook_connect找到
它需要以下webView包重定向到Facebook的SignIn Page @ https://pub.dartlang.org/packages/flutter_webview_plugin
并且可以像这样实现自定义按钮......
然后
token
可以像_3028154那样使用......一些额外的步骤,但整体相当直接的执行 . 还有一个
Firebase_Connect
方法来实现FacebookLogin Button ...Google登录更加轻松 . 只需添加https://pub.dartlang.org/packages/google_sign_in中的Google_SignIn包,并将以下代码添加到自定义Flutter按钮...
我认为Flutter Dart中没有直接实现
但也许可以通过使用本机实现并与Java / Swift代码进行通信 . 您可以构建UI并从flutter触发本机OAuth工作流 .
https://github.com/flutter/flutter/tree/master/examples/hello_services
通过
google-sign-in
包存在Flutter的Google登录 . 查看Firebase for Flutter codelab了解更多信息 .AFAIK,还没有针对Flutter的Facebook登录包(尽管Dart中存在一个用于服务器端的包) . 写这样的包应该是一个有趣的练习......