Avertissement
Ce plugin est maintenant en mode de maintien bas, pour une nouvelle fonctionnalité comme le gestionnaire d'identification ou le manifeste de confidentialité, veuillez utiliser: https://github.com/cap-go/capacitor-social-login
@codetrix-studio/capacitor-google-auth
Condensateur 6
Plugin de condensateur pour Google Auth.
Dans la version V6, clientId dans la méthode Initialize est utilisé en priorité sur d'autres endroits que vous pouvez configurer. Si avant de l'utiliser uniquement sur le Web, unfongez-le sur mobile. Ou définissez-le conditionnellement pour reproduire le vieux comportement.
Les PR sont les bienvenus et très appréciés qui maintiennent ce plugin à jour avec le condensateur et la parité officielle des fonctionnalités de la bibliothèque de la plate-forme Google Auth.
Essayez de suivre les bonnes pratiques de code. Vous pouvez même aider à garder la démo incluse à jour.
Les PR pour les fonctionnalités qui ne sont pas alignées sur la bibliothèque officielle de Google Auth sont découragées.
(Nous sommes adaptés aux débutants ici)
npm i --save @codetrix-studio/capacitor-google-auth
# pnpm
pnpm add @codetrix-studio/capacitor-google-auth
# yarn
yarn add @codetrix-studio/capacitor-google-authnpx cap updateSi besoin migrer vers différentes versions de condensateurs, voir l'instruction pour migrer le plugin vers une nouvelle version.
Enregistrer le plugin et initialiser manuellement
import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth' ;
// use hook after platform dom ready
GoogleAuth . initialize ( {
clientId : 'CLIENT_ID.apps.googleusercontent.com' ,
scopes : [ 'profile' , 'email' ] ,
grantOfflineAccess : true ,
} ) ;ou si besoin utilise des balises méta (facultative):
< meta name =" google-signin-client_id " content =" {your client id here} " />
< meta name =" google-signin-scope " content =" profile email " /> clientId - l'ID client de l'application, trouvé et créé dans la console Google Developers.scopes - Identique à la configuration des lunettesgrantOfflineAccess - Boolean, par défaut false , définissez si votre application doit actualiser les jetons d'accès lorsque l'utilisateur n'est pas présent au navigateur.Utilisez-le
GoogleAuth . signIn ( ) ; Init Hook
// app.component.ts
constructor ( ) {
this . initializeApp ( ) ;
}
initializeApp ( ) {
this . platform . ready ( ) . then ( ( ) => {
GoogleAuth . initialize ( )
} )
}Fonction de connexion
import { GoogleAuth } from "@codetrix-studio/capacitor-google-auth" ;
import { Auth , GoogleAuthProvider , signInWithCredential } from '@angular/fire/auth' ;
async googleSignIn ( ) {
let googleUser = await GoogleAuth . signIn ( ) ;
/*
If you use Firebase you can forward and use the logged in Google user like this:
*/
constructor ( private auth : Auth ) { }
const googleUser = await GoogleAuth . signIn ( ) ;
const _credential = GoogleAuthProvider . credential ( googleUser . authentication . idToken ) ;
return signInWithCredential ( this . auth , _credential ) ;
} < script setup lang="ts">
import { defineComponent , onMounted } from ' vue ' ;
import { GoogleAuth } from ' @codetrix-studio/capacitor-google-auth ' ;
onMounted (() => {
GoogleAuth . initialize ();
});
async function logIn() {
const response = await GoogleAuth . signIn ();
console . log ( response );
}
</ script >ou voir plus de condensateur
Créer dans Google Cloud Console ID Client ID Client pour iOS et obtenir un ID client et un schéma d'URL iOS
Ajouter l'identifiant REVERSED_CLIENT_ID comme schémas d'URL à Info.plist du schéma d'URL iOS
(Xcode: App - Targets / App - Info - Types d'URL, cliquez sur icône)
Définissez l'ID du client l'un des moyens (par ordre d'importance dans le plugin):
clientId dans la méthode InitializeiosClientId dans capacitor.config.jsonclientId dans capacitor.config.jsonCLIENT_ID dans GoogleService-Info.plistDéfinir l'ID client (par ordre d'importance dans le plugin):
clientId dans la méthode InitializeandroidClientId dans capacitor.config.jsonclientId dans capacitor.config.jsonserver_client_id dans strings.xml < resources >
< string name = " server_client_id " >Your Web Client Key</ string >
</ resources >Modification des services de lecture Auth version (facultatif):
Ce plugin utilise com.google.android.gms:play-services-auth:21.2.0 Par défaut, vous pouvez le remplacer en fournissant gmsPlayServicesAuthVersion sur variables.gradle
Méthode de rafraîchissement
Cette méthode doit être appelée lorsque l'application est initialisée pour établir si l'utilisateur est actuellement connecté. Si cela est vrai, la méthode renvoie un AccessToken, idToken et un refroidissement vide.
checkLoggedIn ( ) {
GoogleAuth . refresh ( )
. then ( ( data ) => {
if ( data . accessToken ) {
this . currentTokens = data ;
}
} )
. catch ( ( error ) => {
if ( error . type === 'userLoggedOut' ) {
this . signin ( )
}
} ) ;
} | Nom | Taper | Description |
|---|---|---|
| clientId | chaîne | L'ID client de l'application, trouvé et créé dans la console Google Developers. |
| iOsligietid | chaîne | Clé d'identification client spécifique pour iOS |
| AndroidClientid | chaîne | Clé d'identification client spécifique pour Android |
| portées | chaîne[] | Scopes que vous devrez peut-être demander pour accéder aux API Google https://developers.google.com/identity/protocols/oauth2/scopes |
| serverclientid | chaîne | Ce clientId utilisé pour l'accès hors ligne et la manipulation du côté serveur |
| forcecodeforrefreshtoken | booléen | Forcer l'utilisateur à sélectionner l'adresse e-mail pour régénérer AuthCode Utilisé pour obtenir un rafraîchissement valide (travailler sur iOS et Android) |
Fournir une configuration dans root capacitor.config.json
{
"plugins" : {
"GoogleAuth" : {
"scopes" : [ " profile " , " email " ],
"serverClientId" : " xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com " ,
"forceCodeForRefreshToken" : true
}
}
} ou dans capacitor.config.ts
/// <reference types="'@codetrix-studio/capacitor-google-auth'" />
const config : CapacitorConfig = {
plugins : {
GoogleAuth : {
scopes : [ 'profile' , 'email' ] ,
serverClientId : 'xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com' ,
forceCodeForRefreshToken : true ,
} ,
} ,
} ;
export default config ; initialize . initialize(...)signIn()refresh()signOut() initialize ( options ?: InitOptions ) = > voidInitialise le googleauthplugin, chargeant la bibliothèque GAPI et configurant le plugin.
| Paramot | Taper | Description |
|---|---|---|
options | InitOptions | - Options d'initialisation facultatives. |
Depuis: 3.1.0
signIn ( ) = > Promise < User >Initie le processus de connexion et renvoie une promesse qui résout avec les informations de l'utilisateur.
Renvoie: Promise<User>
refresh ( ) = > Promise < Authentication >Rafraîchit le jeton d'authentification et renvoie une promesse qui résout avec les détails d'authentification mis à jour.
Renvoie: Promise<Authentication>
signOut ( ) = > Promise < any >Signe l'utilisateur et renvoie une promesse.
Renvoie: Promise<any>
| Soutenir | Taper | Description | Défaut | Depuis |
|---|---|---|---|---|
clientId | string | L'ID client de l'application, trouvé et créé dans la console Google Developers. Commun pour Android ou iOS. La valeur par défaut est définie dans la configuration. | 3.1.0 | |
scopes | string[] | Spécifie les lunettes requises pour accéder aux API Google La valeur par défaut est définie dans la configuration. | 3.4.0-RC.4 | |
grantOfflineAccess | boolean | Définissez si votre application doit actualiser les jetons d'accès lorsque l'utilisateur n'est pas présent au navigateur. En réponse, utilisez la touche serverAuthCode | false | 3.1.0 |
| Soutenir | Taper | Description |
|---|---|---|
id | string | L'identifiant unique pour l'utilisateur. |
email | string | L'adresse e-mail associée à l'utilisateur. |
name | string | Le nom complet de l'utilisateur. |
familyName | string | Le nom de famille (nom de famille) de l'utilisateur. |
givenName | string | Le nom donné (prénom) de l'utilisateur. |
imageUrl | string | L'URL de la photo de profil de l'utilisateur. |
serverAuthCode | string | Le code d'authentification du serveur. |
authentication | Authentication | Les détails d'authentification, y compris les jetons d'accès, de rafraîchissement et d'ID. |
| Soutenir | Taper | Description |
|---|---|---|
accessToken | string | Le jeton d'accès obtenu lors de l'authentification. |
idToken | string | Le jeton ID obtenu lors de l'authentification. |
refreshToken | string | Le jeton de rafraîchissement. |
Installez la version 3.4.x:
npm i --save @codetrix-studio/capacitor-google-auth@^3.4Suivez l'instruction pour votre mise à jour du projet vers le condensateur 6.
Installez la version 3.3.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.3Suivez l'instruction pour votre mise à jour du projet du condensateur 4 au condensateur 5.
pour Android dans Fichier MainActivity.onCreate
- this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
- add(GoogleAuth.class);
- }});
+ this.registerPlugin(GoogleAuth.class); Installez la version 3.2.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.2Suivez l'instruction pour votre mise à jour du projet du condensateur 3 au condensateur 4.
- GoogleAuth.init()
+ GoogleAuth.initialize() Installez la version 3.xx:
npm i --save @codetrix-studio/capacitor-google-auth^3.0Après avoir migré vers Capcitor 3 à mettre à jour vos projets, voir Diff:
- import "@codetrix-studio/capacitor-google-auth";
- import { Plugins } from '@capacitor/core';
+ import { GoogleAuth } from '@codetrix-studio/capacitor-google-auth'
- Plugins.GoogleAuth.signIn();
+ GoogleAuth.init()
+ GoogleAuth.signIn() Installez la version 2.xx:
npm i --save @codetrix-studio/capacitor-google-auth@2pour le condensateur 2.xx Utiliser l'instruction
Mit