تحذير
أصبح هذا المكون الإضافي الآن في وضع الصيانة المنخفضة ، لميزة جديدة مثل مدير بيانات الاعتماد أو بيان الخصوصية ، يرجى استخدام: https://github.com/cap-go/capacitor-social-login
@codetrix-studio/capacitor-google-auth
مكثف 6
المكوّن المكون من جوجل Auth.
في إصدار V6 ، يتم استخدام clientId في طريقة التهيئة في الأولوية على الأماكن الأخرى التي يمكنك إعدادها. إذا كنت قبل أن تستخدم هذا فقط على الويب ، قم بإلغاء ضبطه على الهاتف المحمول. أو ضبطها بشكل مشروط لتكرار السلوك القديم.
نرحب بالعلاقات العامة ويقدر كثيرًا أن تبقي هذا المكون الإضافي محدثًا مع مكتبة مكتبة Capacitor و Google Auth Platform الرسمية.
حاول اتباع ممارسات الرمز الجيد. يمكنك حتى المساعدة في الحفاظ على تحديث العرض التوضيحي المضمن.
يتم تثبيط PRS للميزات التي لا تتماشى مع مكتبة Google Auth الرسمية.
(نحن صديقين للمبتدئين هنا)
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 updateإذا حاجة إلى الترحيل إلى إصدارات مكثفات مختلفة ، راجع تعليمات للمكون الإضافي للترحيل إلى إصدار جديد.
سجل البرنامج المساعد وتهيئة يدويًا
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 ,
} ) ;أو إذا لزم الأمر ، فاستخدم علامات التعريف (اختيارية):
< meta name =" google-signin-client_id " content =" {your client id here} " />
< meta name =" google-signin-scope " content =" profile email " /> clientId - معرف عميل التطبيق ، الذي تم العثور عليه وإنشائه في وحدة تحكم مطوري Google.scopes - مثل تكوين النطاقاتgrantOfflineAccess - Boolean ، Default false ، تعيين إذا كان تطبيقك يحتاج إلى تحديث رموز الوصول عندما لا يكون المستخدم موجودًا في المتصفح.استخدمه
GoogleAuth . signIn ( ) ; init هوك
// app.component.ts
constructor ( ) {
this . initializeApp ( ) ;
}
initializeApp ( ) {
this . platform . ready ( ) . then ( ( ) => {
GoogleAuth . initialize ( )
} )
}تسجيل الدخول وظيفة
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 >أو انظر المزيد
إنشاء في Google Cloud Cred Crediber ID لنظام iOS واحصل على معرف العميل ونظام IOS URL
إضافة معرف REVERSED_CLIENT_ID كمخططات عناوين URL إلى Info.plist من نظام url iOS
(Xcode: App - Targets/App - Info - url أنواع ، انقر فوق أيقونة)
اضبط معرف العميل إحدى الطرق (حسب ترتيب الأهمية في البرنامج المساعد):
clientId في تهيئة الطريقةiosClientId في capacitor.config.jsonclientId في capacitor.config.jsonCLIENT_ID في GoogleService-Info.plistتعيين معرف العميل (حسب ترتيب الأهمية في البرنامج المساعد):
clientId في تهيئة الطريقةandroidClientId في capacitor.config.jsonclientId في capacitor.config.jsonserver_client_id في strings.xml < resources >
< string name = " server_client_id " >Your Web Client Key</ string >
</ resources >تغيير إصدار Auth Services Services (اختياري):
يستخدم هذا المكون الإضافي com.google.android.gms:play-services-auth:21.2.0 افتراضيًا ، يمكنك تجاوزه لتوفير gmsPlayServicesAuthVersion في variables.gradle
طريقة التحديث
يجب استدعاء هذه الطريقة عند تهيئة التطبيق لتحديد ما إذا كان المستخدم قد تم تسجيل الدخول حاليًا. إذا كان ذلك صحيحًا ، فستقوم الطريقة بإرجاع AccessToken و IdToken و refreshoken فارغ.
checkLoggedIn ( ) {
GoogleAuth . refresh ( )
. then ( ( data ) => {
if ( data . accessToken ) {
this . currentTokens = data ;
}
} )
. catch ( ( error ) => {
if ( error . type === 'userLoggedOut' ) {
this . signin ( )
}
} ) ;
} | اسم | يكتب | وصف |
|---|---|---|
| ClientId | خيط | معرف عميل التطبيق ، الذي تم العثور عليه وإنشائه في وحدة التحكم في Google Developers. |
| iosclientid | خيط | مفتاح معرف العميل المحدد لنظام التشغيل iOS |
| Androidclientid | خيط | مفتاح معرف العميل المحدد لنظام Android |
| نطاقات | خيط[] | نطاقات قد تحتاج إلى طلب الوصول إلى واجهات برمجة تطبيقات Google https://developers.google.com/identity/protocols/oauth2/scopes |
| ServerClientId | خيط | هذا العميل يستخدم للوصول إلى غير متصل والتعامل مع جانب الخادم |
| forcodeforrefreshtoken | منطقية | إجبار المستخدم على تحديد عنوان البريد الإلكتروني لتجديد رمز authcode تستخدم للحصول على تحديث صالح (العمل على iOS و Android) |
توفير التكوين في الجذر capacitor.config.json
{
"plugins" : {
"GoogleAuth" : {
"scopes" : [ " profile " , " email " ],
"serverClientId" : " xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com " ,
"forceCodeForRefreshToken" : true
}
}
} أو في 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 ) = > voidتهيئة googleauthplugin ، وتحميل مكتبة GAPI وإعداد المكون الإضافي.
| بارام | يكتب | وصف |
|---|---|---|
options | InitOptions | - خيارات التهيئة الاختيارية. |
منذ: 3.1.0
signIn ( ) = > Promise < User >يبدأ عملية تسجيل الدخول ويعيد وعدًا يحل مع معلومات المستخدم.
إرجاع: Promise<User>
refresh ( ) = > Promise < Authentication >يقوم بتحديث رمز المصادقة وإرجاع وعد يحل مع تفاصيل المصادقة المحدثة.
عائدات: Promise<Authentication>
signOut ( ) = > Promise < any >يوقع المستخدم ويعيد وعدًا.
عائدات: Promise<any>
| دعم | يكتب | وصف | تقصير | منذ |
|---|---|---|---|---|
clientId | string | معرف عميل التطبيق ، الذي تم العثور عليه وإنشائه في وحدة التحكم في Google Developers. شائع لنظام Android أو iOS. يتم تعريف الافتراضي في التكوين. | 3.1.0 | |
scopes | string[] | يحدد النطاقات المطلوبة للوصول إلى Google APIs يتم تعريف الافتراضي في التكوين. | 3.4.0-RC.4 | |
grantOfflineAccess | boolean | اضبط إذا كان تطبيقك يحتاج إلى تحديث رموز الوصول عندما لا يكون المستخدم موجودًا في المتصفح. في الاستجابة ، استخدم مفتاح serverAuthCode | false | 3.1.0 |
| دعم | يكتب | وصف |
|---|---|---|
id | string | المعرف الفريد للمستخدم. |
email | string | عنوان البريد الإلكتروني المرتبط بالمستخدم. |
name | string | الاسم الكامل للمستخدم. |
familyName | string | اسم العائلة (الاسم الأخير) للمستخدم. |
givenName | string | الاسم المحدد (الاسم الأول) للمستخدم. |
imageUrl | string | عنوان URL لصورة ملف تعريف المستخدم. |
serverAuthCode | string | رمز مصادقة الخادم. |
authentication | Authentication | تفاصيل المصادقة بما في ذلك الرموز المميزة للوصول والتحديث والمعرف. |
| دعم | يكتب | وصف |
|---|---|---|
accessToken | string | رمز الوصول الذي تم الحصول عليه أثناء المصادقة. |
idToken | string | رمز المعرف الذي تم الحصول عليه أثناء المصادقة. |
refreshToken | string | رمز التحديث. |
تثبيت الإصدار 3.4.x:
npm i --save @codetrix-studio/capacitor-google-auth@^3.4اتبع تعليمات لك تحديث المشروع إلى مكثف 6.
تثبيت الإصدار 3.3.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.3اتبع التعليمات الخاصة بك تحديث المشروع من مكثف 4 إلى مكثف 5.
لنظام Android في ملف MainActivity.onCreate
- this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
- add(GoogleAuth.class);
- }});
+ this.registerPlugin(GoogleAuth.class); تثبيت الإصدار 3.2.x:
npm i --save @codetrix-studio/capacitor-google-auth^3.2اتبع التعليمات الخاصة بك تحديث المشروع من مكثف 3 إلى مكثف 4.
- GoogleAuth.init()
+ GoogleAuth.initialize() تثبيت الإصدار 3.xx:
npm i --save @codetrix-studio/capacitor-google-auth^3.0بعد الترحيل إلى Capcitor 3 تحديث مشاريعك ، انظر 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() تثبيت الإصدار 2.xx:
npm i --save @codetrix-studio/capacitor-google-auth@2للمكثف 2.xx استخدم التعليمات
معهد ماساتشوستس للتكنولوجيا