google_auth

Simple google authentication plugin for flutter.

Configuration

Android

No configuration required.

iOS

Official docs: https://developers.google.com/identity/sign-in/ios/start-integrating

In info.plist add the following:

<key>GIDClientID</key>
<string>$(DEFINE_GOOGLE_CLIENT_ID_IOS)</string>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>$(DEFINE_GOOGLE_URL_SCHEME_IOS)</string>
        </array>
    </dict>
</array>

with $(DEFINE_GOOGLE_CLIENT_ID_IOS), $(DEFINE_GOOGLE_URL_SCHEME_IOS) being the client id (iOS) and iOS URL scheme of your app, respectively.

Usage

  • Add the plugin to pubspec.yaml: flutter pub add google_auth.
  • Import the plugin in your dart code: import 'package:google_auth/google_auth.dart';.
  • To authenticate user: GoogleAuth().signIn(clientId), where clientId is:
    • For Android, the client id setup for Web app. Note: if you use the client id setup for Android app, you will get an error saying that the developer console is not setup correctly.
    • For iOS, this parameter is ignored, you can pass in any string.

This function returns a Future object resolving an object of the following format.

  • iOS:
{
  "idToken"?: String
  "idTokenExpire"?: int
  "accessToken": String
  "accessTokenExpire"?: int
  "userID"?: String
  "refreshToken": String
  "refreshTokenExpire"?: int
  "email"?: String
  "name"?: String
  "givenName"?: String
  "familyName"?: String
  "image"?: String
}
  • Android:
{
  "idToken": String
}
API reference for iOS - Token object: https://developers.google.com/identity/sign-in/ios/reference/Classes/GIDToken - Profile object: https://developers.google.com/identity/sign-in/ios/reference/Classes/GIDProfileData.html
  • To logout user: GoogleAuth().signOut(): Future<void>.
  • Possible error code: check the error code with
try {
  return {'idToken': await GoogleAuth().signIn(clientId)};
} on PlatformException catch (e) {
  if (e.code == 'API_CANCELED' || e.code == 'GSI_SIGN_IN_CANCELLED') {
    throw AppError('User has cancelled');
  }
  rethrow;
}

SDK versions

  • Android
    implementation 'com.google.android.gms:play-services-auth:20.5.0'
  • iOS
  s.dependency 'GoogleSignIn', '~> 7.0'

Libraries

google_auth