GoogleSignIn
This plugin allows you to authenticate and identify users with Google Sign-in on Android.
This project is inspired on two other Cordova plugins: https://github.com/EddyVerbruggen/cordova-plugin-googleplus and https://github.com/artberri/cordova-plugin-play-games-services. The difference is that this plugin wraps the new GoogleSignInClient class instead of the deprecated GoogleApiClient (see https://android-developers.googleblog.com/2017/11/moving-past-googleapiclient_21.html).
Requirements
compileSdkVersion 28 or later.
Install
ionic cordova plugin add https://github.com/rogeriotakejame/googlesignin --variable APP_ID=your_app_id
Where your_app_id is your 12 digit id registered on Google (TODO how)
Usage
cordova.plugins.GoogleSignIn.getLastSignedInAccount(
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
cordova.plugins.GoogleSignIn.signIn(
{
signInMode:this.signInMode,
scopes:this.selectedScopes,
webClientId:this.webClientId
},
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
cordova.plugins.GoogleSignIn.silentSignIn(
{
signInMode:this.signInMode,
scopes:this.selectedScopes,
webClientId:this.webClientId
},
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
cordova.plugins.GoogleSignIn.signOut(
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
cordova.plugins.GoogleSignIn.revokeAccess(
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
cordova.plugins.GoogleSignIn.isGooglePlayServicesAvailable(
function(res) {
// Success
console.log(res);
},
function(err) {
// Failure
console.error(err);
}
);
Default sign in scopes empty / "profile" / "id" { SUCCESS: 0 displayName: "Rogerio Takejame" familyName: "Takejame" givenName: "Rogerio" grantedScopes: "[https://www.googleapis.com/auth/userinfo.profile, openid, profile]" statusCode: 0 userId: "110074068522070375111" } scopes "email" { SUCCESS: 0 displayName: "Rogerio Takejame" email: "rogerio.takejame@gmail.com" familyName: "Takejame" givenName: "Rogerio" grantedScopes: "[https://www.googleapis.com/auth/userinfo.profile, https://www.googleapis.com/auth/userinfo.email, openid, profile, email]" statusCode: 0 userId: "110074068522070375111" }
scopes "idtoken" { SUCCESS: 0 displayName: "Rogerio Takejame" familyName: "Takejame" givenName: "Rogerio" grantedScopes: "[https://www.googleapis.com/auth/userinfo.profile, openid, profile]" idToken: "eyJhb...1QifQ.eyJpc...MxMX0.D91y3...SLzCw" imageUrl: "https://lh3.googleusercontent.com/-0U...s96-c/photo.jpg" statusCode: 0 userId: "110074068522070375111" } scopes "serverauthcode" { SUCCESS: 0 displayName: "Rogerio Takejame" familyName: "Takejame" givenName: "Rogerio" grantedScopes: "[https://www.googleapis.com/auth/userinfo.profile, openid, profile]" serverAuthCode: "4/3wFad...YYRDg-lZHBU1...7rWIY" statusCode: 0 userId: "110074068522070375111" }
Games sign in { grantedScopes: "[https://www.googleapis.com/auth/games_lite]", statusCode: 0, SUCCESS: 0 }
scopes "id" { SUCCESS: 0 grantedScopes: "[openid, https://www.googleapis.com/auth/games_lite]" statusCode: 0 userId: "110074068522070375111" } scopes "email" { SUCCESS: 0 email: "rogerio.takejame@gmail.com" grantedScopes: "[https://www.googleapis.com/auth/userinfo.email, openid, email, https://www.googleapis.com/auth/games_lite]" statusCode: 0 userId: "110074068522070375111" } scopes "profile" { SUCCESS: 0 displayName: "Rogerio Takejame" familyName: "Takejame" givenName: "Rogerio" grantedScopes: "[https://www.googleapis.com/auth/userinfo.profile, profile, https://www.googleapis.com/auth/games_lite]" statusCode: 0 } scopes "idtoken" { SUCCESS: 0 grantedScopes: "[openid, https://www.googleapis.com/auth/games_lite]" idToken: "eyJh8...dw4fQ.eyJpc...U1MH0.h7raL...FuCAA" statusCode: 0 userId: "110074068522070375111" } scopes "serverauthcode" { SUCCESS: 0 grantedScopes: "[https://www.googleapis.com/auth/games_lite]" serverAuthCode: "4/3wESi...wbfyG-D3J45...8vSbs" statusCode: 0 } error { API_NOT_CONNECTED: 17 CANCELED: 16 DEVELOPER_ERROR: 10 ERROR: 13 INTERNAL_ERROR: 8 INTERRUPTED: 14 INVALID_ACCOUNT: 5 NETWORK_ERROR: 7 RESOLUTION_REQUIRED: 6 SERVICE_DISABLED: 3 SERVICE_VERSION_UPDATE_REQUIRED: 2 SIGN_IN_CANCELLED: 12501 SIGN_IN_CURRENTLY_IN_PROGRESS: 12502 SIGN_IN_FAILED: 12500 SIGN_IN_REQUIRED: 4 SUCCESS: 0 SUCCESS_CACHE: -1 TIMEOUT: 15 className: "com.google.android.gms.common.api.ApiException" statusCode: 4 }