capacitor-google-sign-in
v0.0.3
Published
Plugin para SignUp/SignIn de Google en Android y iOS
Downloads
43
Readme
capacitor-google-sign-in
This plugin was created using the latest implementation available for Android and iOS. The idea of this plugin is to use it to obtain the user’s token, and the rest of the logic is managed by our backend. The plugin returns/deserializes the token to obtain the basic data, but I recommend doing this on your backend and validating it if possible.
Prerequisites
To use the plugin, you need a Google Cloud account:
For both, you need to obtain an OAuth client ID.
iOS Documentation: https://developers.google.com/identity/sign-in/ios/start-integrating
For iOS, you need to add both GIDClientID and GIDServerClientID (optional) to the info.plist.
Android Documentation: https://developer.android.com/identity/sign-in/credential-manager-siwg
For Android, you need to configure the ID in the capacitor config file as follows:
"GoogleSignIn": { "AndroidServerClientId": "MY_CLIENT_ID" }
Because I am using the latest dependencies in the Android integration, the project needs to compile to version 35 for it to work.
Extra
Additionally, with this plugin, you can request permissions to access Google resources. Again, this plugin only handles obtaining the token; the rest of the logic is done on the backend. There are two methods: one to check the status and another to request it. Both methods accept an array of scopes:
Example of a scope format:
const scopes = ['https://www.googleapis.com/auth/calendar']
Install
npm install capacitor-google-sign-in
npx cap sync
API
handleSignInButton()
handleSignInButton() => Promise<SignInWithGoogleResponse>
Returns: Promise<SignInWithGoogleResponse>
signOut()
signOut() => Promise<void>
restorePreviousSignIn()
restorePreviousSignIn() => Promise<void>
checkScopes(...)
checkScopes(options: { scopes: string[]; }) => Promise<{ value: boolean; }>
| Param | Type |
| ------------- | ---------------------------------- |
| options
| { scopes: string[]; } |
Returns: Promise<{ value: boolean; }>
requestScopes(...)
requestScopes(options: { scopes: string[]; }) => Promise<{ value: boolean; }>
| Param | Type |
| ------------- | ---------------------------------- |
| options
| { scopes: string[]; } |
Returns: Promise<{ value: boolean; }>
Interfaces
SignInWithGoogleResponse
| Prop | Type |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| response
| { user: string | null; email: string | null; givenName: string | null; familyName: string | null; identityToken: string; authorizationCode: string | null; serverAuthCode: string | null; } |