Peringatan
Plugin ini sekarang dalam mode pemeliharaan rendah, untuk fitur baru seperti Manajer Kredensial atau Manifes Privasi Harap Gunakan: https://github.com/cap-go/capacitor-social-login
@codetrix-studio/capacitor-google-auth
Kapasitor 6
Plugin kapasitor untuk Google Auth.
Dalam versi V6, clientId dalam metode inisialisasi digunakan dalam prioritas di atas tempat lain yang bisa Anda atur. Jika sebelum Anda menggunakan ini hanya di web, lepaskan di ponsel. Atau mengaturnya secara kondisional untuk mereplikasi perilaku lama.
PRS dipersilakan dan sangat dihargai yang membuat plugin ini tetap up to date dengan kapasitor dan paritas fitur Platform Platform Google Auth resmi.
Cobalah untuk mengikuti praktik kode yang baik. Anda bahkan dapat membantu menjaga demo yang disertakan diperbarui.
PRS untuk fitur yang tidak selaras dengan perpustakaan resmi Google Auth tidak dianjurkan.
(Kami ramah pemula di sini)
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 updateJika perlu bermigrasi ke versi kapasitor yang berbeda, lihat instruksi untuk migrasi plugin ke versi baru.
Daftarkan plugin dan inisialisasi secara manual
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 ,
} ) ;atau jika perlu gunakan tag meta (opsional):
< meta name =" google-signin-client_id " content =" {your client id here} " />
< meta name =" google-signin-scope " content =" profile email " /> clientId - ID klien aplikasi, ditemukan dan dibuat di konsol Google Developers.scopes - Sama seperti Konfigurasi LingkupgrantOfflineAccess - Boolean, false Default, Tetapkan jika aplikasi Anda perlu menyegarkan Token akses ketika pengguna tidak ada di browser.Gunakan itu
GoogleAuth . signIn ( ) ; init hook
// app.component.ts
constructor ( ) {
this . initializeApp ( ) ;
}
initializeApp ( ) {
this . platform . ready ( ) . then ( ( ) => {
GoogleAuth . initialize ( )
} )
}Masuk fungsi
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 >Atau lihat lebih banyak contoh kapasitorgoogleauth-vue3
Buat ID Klien Kredensial Konsol Google Cloud untuk iOS dan dapatkan ID klien dan skema URL iOS
Tambahkan Identifier REVERSED_CLIENT_ID sebagai skema URL ke Info.plist dari skema URL iOS
(Xcode: Aplikasi - Target/Aplikasi - Info - Jenis URL, Klik Ikon Plus)
Setel ID Klien Salah satu cara (atas urutan kepentingan dalam plugin):
clientId dalam metode inisialisasiiosClientId di capacitor.config.jsonclientId di capacitor.config.jsonCLIENT_ID di GoogleService-Info.plistSetel ID Klien (atas urutan kepentingan di plugin):
clientId dalam metode inisialisasiandroidClientId di capacitor.config.jsonclientId di capacitor.config.jsonserver_client_id di strings.xml < resources >
< string name = " server_client_id " >Your Web Client Key</ string >
</ resources >Mengubah Versi Auth Layanan Play (Opsional):
Plugin ini menggunakan com.google.android.gms:play-services-auth:21.2.0 Secara default, Anda dapat mengganti itu menyediakan gmsPlayServicesAuthVersion di variables.gradle
Metode Refresh
Metode ini harus dipanggil ketika aplikasi diinisialisasi untuk menetapkan jika pengguna saat ini masuk. Jika benar, metode ini akan mengembalikan AccessToken, IdToken, dan refreshToken kosong.
checkLoggedIn ( ) {
GoogleAuth . refresh ( )
. then ( ( data ) => {
if ( data . accessToken ) {
this . currentTokens = data ;
}
} )
. catch ( ( error ) => {
if ( error . type === 'userLoggedOut' ) {
this . signin ( )
}
} ) ;
} | Nama | Jenis | Keterangan |
|---|---|---|
| ClientId | rangkaian | ID klien aplikasi, ditemukan dan dibuat di konsol pengembang Google. |
| iosclientId | rangkaian | Kunci ID klien tertentu untuk iOS |
| androidclientId | rangkaian | Kunci ID klien tertentu untuk Android |
| lingkup | rangkaian[] | Lingkup yang mungkin perlu Anda minta untuk mengakses Google API https://developers.google.com/identity/protocols/oauth2/scopes |
| ServerClientID | rangkaian | ClientId ini digunakan untuk akses offline dan penanganan sisi server |
| ForcecodeforrefreshToken | Boolean | Paksa Pengguna Untuk Memilih Alamat Email Untuk Mengatur Kode Authcode Digunakan untuk mendapatkan refreshToken yang valid (bekerja di iOS dan Android) |
Berikan konfigurasi di root capacitor.config.json
{
"plugins" : {
"GoogleAuth" : {
"scopes" : [ " profile " , " email " ],
"serverClientId" : " xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com " ,
"forceCodeForRefreshToken" : true
}
}
} atau di 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 ) = > voidMenginisialisasi GoogleAuthplugin, memuat pustaka GAPI dan mengatur plugin.
| Param | Jenis | Keterangan |
|---|---|---|
options | InitOptions | - Opsi inisialisasi opsional. |
Sejak: 3.1.0
signIn ( ) = > Promise < User >Memulai proses masuk dan mengembalikan janji yang diselesaikan dengan informasi pengguna.
Pengembalian: Promise<User>
refresh ( ) = > Promise < Authentication >Menyegarkan token otentikasi dan mengembalikan janji yang diselesaikan dengan detail otentikasi yang diperbarui.
Pengembalian: Promise<Authentication>
signOut ( ) = > Promise < any >Menandatangani pengguna dan mengembalikan janji.
Pengembalian: Promise<any>
| Menopang | Jenis | Keterangan | Bawaan | Sejak |
|---|---|---|---|---|
clientId | string | ID klien aplikasi, ditemukan dan dibuat di konsol pengembang Google. Umum untuk Android atau iOS. Default didefinisikan dalam konfigurasi. | 3.1.0 | |
scopes | string[] | Menentukan lingkup yang diperlukan untuk mengakses Google API, default didefinisikan dalam konfigurasi. | 3.4.0-rc.4 | |
grantOfflineAccess | boolean | Setel jika aplikasi Anda perlu menyegarkan ke akses ke mana pengguna tidak hadir di browser. Sebagai tanggapan gunakan kunci serverAuthCode | false | 3.1.0 |
| Menopang | Jenis | Keterangan |
|---|---|---|
id | string | Pengidentifikasi unik untuk pengguna. |
email | string | Alamat email yang terkait dengan pengguna. |
name | string | Nama lengkap pengguna. |
familyName | string | Nama keluarga (nama belakang) pengguna. |
givenName | string | Nama yang diberikan (nama depan) dari pengguna. |
imageUrl | string | URL gambar profil pengguna. |
serverAuthCode | string | Kode otentikasi server. |
authentication | Authentication | Detail otentikasi termasuk akses, penyegaran dan token ID. |
| Menopang | Jenis | Keterangan |
|---|---|---|
accessToken | string | Token akses yang diperoleh selama otentikasi. |
idToken | string | Token ID yang diperoleh selama otentikasi. |
refreshToken | string | Token Refresh. |
Instal Versi 3.4.x:
npm i --save @codetrix-studio/capacitor-google-auth@^3.4Ikuti instruksi untuk Anda memperbarui proyek ke kapasitor 6.
Instal Versi 3.3.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.3Ikuti instruksi untuk Anda memperbarui proyek dari Capacitor 4 ke Capacitor 5.
untuk Android di file MainActivity.onCreate
- this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
- add(GoogleAuth.class);
- }});
+ this.registerPlugin(GoogleAuth.class); Instal Versi 3.2.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.2Ikuti instruksi untuk Anda memperbarui proyek dari Capacitor 3 ke Capacitor 4.
- GoogleAuth.init()
+ GoogleAuth.initialize() Instal Versi 3.xx:
npm i --save @codetrix-studio/capacitor-google-auth^3.0Setelah bermigrasi ke Capcitor 3 Memperbarui proyek Anda, lihat 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() Instal Versi 2.XX:
npm i --save @codetrix-studio/capacitor-google-auth@2untuk kapasitor 2.xx menggunakan instruksi
Mit