Advertisement
Guest User

Untitled

a guest
Sep 12th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.01 KB | None | 0 0
  1. import 'package:kuzzle/kuzzle.dart';
  2. import 'package:google_sign_in/google_sign_in.dart';
  3. import 'package:flutter_facebook_login/flutter_facebook_login.dart';
  4.  
  5. class LoginScreen extends StatelessWidget {
  6.  
  7.   void signInWithGoogle(BuildContext context) async {
  8.     final GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
  9.     final GoogleSignInAuthentication googleSignInAuthentication =
  10.         await googleSignInAccount.authentication;
  11.     KuzzleUser _kuzzleUser;
  12.  
  13.     try {
  14.         await kuzzle.auth.login(
  15.           'google-token',
  16.           Map<String, dynamic> {
  17.               'access-token': googleSignInAuthentication.accessToken,
  18.           }
  19.           expiresIn: '1y',
  20.         );
  21.         final KuzzleUser _kuzzleUser = await kuzzle.auth.getCurrentUser();
  22.     } catch (_) {
  23.         // throw ...
  24.     }
  25.  
  26.     if (_kuzzleUser == null) {
  27.       // throw
  28.     }
  29.   }
  30.  
  31.   void signInWithFacebook(BuildContext context) async {
  32.     KuzzleUser _kuzzleUser;
  33.  
  34.     final result = await facebookLogin.logInWithReadPermissions(['email']);
  35.     switch (result.status) {
  36.       case FacebookLoginStatus.loggedIn:
  37.  
  38.       try {
  39.           await kuzzle.auth.login(
  40.             'facebook-token',
  41.             Map<String, dynamic> {
  42.                 'access-token': result.accessToken.token,
  43.             }
  44.             expiresIn: '1y',
  45.           );
  46.           final KuzzleUser _kuzzleUser = await kuzzle.auth.getCurrentUser();
  47.       } catch (_) {
  48.           // throw ...
  49.       }
  50.  
  51.       if (_kuzzleUser == null) {
  52.         // throw
  53.       }
  54.       break;
  55.     case FacebookLoginStatus.cancelledByUser:
  56.       break;
  57.     case FacebookLoginStatus.error:
  58.       break;
  59.   }
  60.  
  61.   @override
  62.   Widget build(BuildContext context) {
  63.     return Scaffold(
  64.       body: Row(
  65.          children: <Widgets>[
  66.            RaisedButton(
  67.              child: Text('Login with Facebook'),
  68.              onPressed: () async {
  69.                await this.signInWithFacebook(context);
  70.              },
  71.            ),
  72.          ]
  73.       )
  74.     );
  75.   }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement