نظرة عامة
تضيف ميزة الربط المبسّط المستند إلى OAuth في "تسجيل الدخول باستخدام حساب Google" خيار "تسجيل الدخول باستخدام حساب Google" إلى الربط المستند إلى OAuth. يوفّر ذلك تجربة ربط سلسة لمستخدمي Google، كما يتيح إنشاء حساب، ما يسمح للمستخدم بإنشاء حساب جديد على خدمتك باستخدام حساب Google.
لربط الحساب باستخدام OAuth و"تسجيل الدخول باستخدام حساب Google"، اتّبِع الخطوات العامة التالية:
- أولاً، اطلب من المستخدم الموافقة على الوصول إلى ملفه الشخصي في حساب Google.
- استخدِم المعلومات الواردة في ملفه الشخصي للتحقّق مما إذا كان حساب المستخدم متوفّرًا.
- بالنسبة إلى المستخدمين الحاليين، اربط الحسابات.
- إذا لم تتمكّن من العثور على مستخدم Google مطابق في نظام المصادقة، عليك التحقّق من صحة الرمز المميّز المعرّف الذي تلقّيته من Google. يمكنك بعد ذلك إنشاء مستخدم استنادًا إلى معلومات الملف الشخصي الواردة في رمز المعرّف المميّز.
الشكل 1 ربط الحسابات على هاتف المستخدم باستخدام ميزة "الربط السلس"
متطلبات ميزة "الربط السلس"
- نفِّذ مسار الربط الأساسي المستند إلى بروتوكول OAuth على الويب. يجب أن تتيح خدمتك نقاط نهاية الترخيص وتبادل الرموز المميزة المتوافقة مع OAuth 2.0.
- يجب أن تتيح نقطة نهاية تبادل الرموز المميزة تأكيدات رمز JSON المميّز للويب (JWT) وتنفيذ الأهداف
checkوcreateوget.
تنفيذ خادم OAuth
يجب أن تتوافق نقطة نهاية تبادل الرموز المميزة مع الأهداف check وcreate وget.
اتّبِع الخطوات التالية لإكمال عملية ربط الحساب والتعرّف على الحالات التي يتم فيها استخدام النوايا المختلفة:
- هل لدى المستخدم حساب في نظام المصادقة؟ (يقرّر المستخدم ذلك من خلال اختيار "نعم" أو "لا")
- نعم : هل يستخدم المستخدم عنوان البريد الإلكتروني المرتبط بحساب Google لتسجيل الدخول إلى منصتك؟ (يقرّر المستخدم ذلك من خلال اختيار "نعم" أو "لا")
- نعم : هل لدى المستخدم حساب مطابق في نظام المصادقة؟ (يتم الاتصال بالرقم
check intentللتأكيد)- نعم : يتم الاتصال بـ
get intentويتم ربط الحساب إذا تم عرض نتيجة get intent بنجاح. - لا : إنشاء حساب جديد؟ (يقرّر المستخدم ذلك من خلال اختيار "نعم" أو "لا")
- نعم : يتمّ استدعاء
create intentويتمّ ربط الحساب إذا تمّ عرض نتيجة إنشاء الغرض بنجاح. - لا : يتم تفعيل عملية Web OAuth، ويتم توجيه المستخدم إلى المتصفّح، ويُمنح المستخدم خيار الربط بعنوان بريد إلكتروني مختلف.
- نعم : يتمّ استدعاء
- نعم : يتم الاتصال بـ
- لا : يتم تفعيل مسار OAuth على الويب، ويتم توجيه المستخدم إلى المتصفّح، ويُمنح المستخدم خيار الربط بعنوان بريد إلكتروني مختلف.
- نعم : هل لدى المستخدم حساب مطابق في نظام المصادقة؟ (يتم الاتصال بالرقم
- لا : هل لدى المستخدم حساب مطابق في نظام المصادقة؟ (يتم الاتصال بالرقم
check intentللتأكيد)- نعم : يتم الاتصال بـ
get intentويتم ربط الحساب إذا تم عرض نتيجة get intent بنجاح. - يتم استدعاء NO :
create intentويتم ربط الحساب إذا تم عرض نتيجة إنشاء الغرض بنجاح.
- نعم : يتم الاتصال بـ
- نعم : هل يستخدم المستخدم عنوان البريد الإلكتروني المرتبط بحساب Google لتسجيل الدخول إلى منصتك؟ (يقرّر المستخدم ذلك من خلال اختيار "نعم" أو "لا")
التحقّق من توفّر حساب مستخدم حالي (التحقّق من النية)
بعد أن يمنح المستخدِم موافقته على الوصول إلى ملفه الشخصي في Google، ترسل Google طلب يتضمن تأكيدًا موقَّعًا على هوية مستخدم Google. تشير رسالة الأشكال البيانية يحتوي تأكيد البيانات على معلومات تشتمل على رقم تعريف حساب المستخدم على Google، والاسم وعنوان البريد الإلكتروني. نقطة نهاية تبادل الرموز المميّزة التي تم ضبطها المشروع أن يتعامل مع هذا الطلب.
في حال توفُّر حساب Google المناسب في المصادقة
فإن نقطة نهاية تبادل الرمز المميز تستجيب باستخدام account_found=true. إذا كانت
لا يتطابق حساب Google مع مستخدم حالي، نقطة نهاية تبادل الرموز المميّزة
تعرض الخطأ HTTP 404 لم يتم العثور على الصفحة مع account_found=false.
يكون الطلب بالشكل التالي:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=check&assertion=JWT&scope=SCOPES&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
يجب أن تتمكّن نقطة نهاية تبادل الرموز المميّزة من معالجة المَعلمات التالية:
| مَعلمات نقطة نهاية الرمز المميّز | |
|---|---|
intent |
بالنسبة إلى هذه الطلبات، تكون قيمة هذه المعلمة
check |
grant_type |
تمثّل هذه السمة نوع الرمز المميّز الذي يتم تبادله. بالنسبة لهذه الطلبات، سيتم
المعلَمة urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
يشير هذا المصطلح إلى رمز JSON المميّز للويب (JWT) ويقدِّم تأكيدًا موقَّعًا على بيانات وهوية المستخدم. يحتوي JWT على معلومات تتضمن عنوان URL الخاص رقم تعريف حساب Google والاسم وعنوان البريد الإلكتروني |
client_id |
معرِّف العميل الذي عيّنته لـ Google. |
client_secret |
سر العميل الذي خصّصته لـ Google. |
للردّ على طلبات intent لـ check، يجب أن تنفِّذ نقطة نهاية تبادل الرموز المميّزة الخطوات التالية:
- التحقق من صحة تأكيد JWT وفك ترميزه
- تحقَّق مما إذا كان حساب Google متوفّرًا من قبل في نظام المصادقة.
التحقق من صحة تأكيد JWT وفك ترميزه
يمكنك التحقق من صحة تأكيد JWT وفك ترميزه باستخدام مكتبة فك ترميز JWT بلغتك. استخدام مفاتيح Google العامة، متاحة في JWK أو PEM، للتأكّد من توقيع الرمز المميز.
عند فك ترميز النص، يظهر تأكيد JWT على النحو التالي:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
بالإضافة إلى التحقّق من توقيع الرمز المميّز، تأكَّد من أنّ التأكيد
جهة الإصدار (الحقل iss) هي https://accounts.google.com، بحيث يمكن لشريحة الجمهور
(الحقل aud) هو معرّف العميل الذي تم تعيينه، ولم تنتهِ صلاحية الرمز المميّز.
(حقل exp).
باستخدام الحقول email وemail_verified وhd، يمكنك تحديد ما إذا كان
تستضيف Google عناوين البريد الإلكتروني وموثوقًا بها. في الحالات التي تواجه فيها Google
موثوقية المستخدم المعروف حاليًا بأنه صاحب الحساب الشرعي
ويمكنك تخطي كلمة المرور أو طرق التحديات الأخرى. بخلاف ذلك، فإن هذه الطرق
يمكن استخدامها للتحقّق من الحساب قبل ربطه
الحالات التي تكون فيها Google موثوقة:
- السمة
emailهي اللاحقة@gmail.com، وهذا حساب Gmail. email_verifiedصحيح وتم ضبطhd، هذا حساب G Suite.
يمكن للمستخدمين التسجيل للحصول على حسابات Google بدون استخدام Gmail أو G Suite. فعندما
لا يحتوي email على اللاحقة @gmail.com وhd غير موجود في Google
موثوقة وكلمة المرور أو طرق التحقق الأخرى للتحقق
المستخدم. يمكن أن يكون email_verified صحيحًا أيضًا لأن Google تحققت في البداية من صحة
المستخدم عند إنشاء حساب Google، ولكن ملكية الجهة الخارجية
ربما تغير حساب بريدك الإلكتروني منذ ذلك الحين.
التأكّد من توفّر حساب Google في نظام المصادقة
تحقق مما إذا كان أي من الشروط التالية صحيحًا:
- رقم تعريف حساب Google، الوارد في حقل
subفي التأكيد، موجود في حساب المستخدم. قاعدة البيانات. - يتطابق عنوان البريد الإلكتروني الوارد في التأكيد مع مستخدم في قاعدة بيانات المستخدم الخاصة بك.
في حال استيفاء أيٌّ من الشروط، يعني هذا أنّ المستخدم قد اشترك في الخدمة من قبل. في هذه الحالة، إرجاع رد مثل ما يلي:
HTTP/1.1 200 Success
Content-Type: application/json;charset=UTF-8
{
"account_found":"true",
}
إذا لم يكن معرّف حساب Google أو عنوان البريد الإلكتروني المحددَين في
تطابق تأكيد مع مستخدم في قاعدة البيانات الخاصة بك، لم يشترك المستخدم بعد. ضِمن
في هذه الحالة، تحتاج نقطة نهاية تبادل الرمز المميّز إلى الردّ مع عرض خطأ HTTP 404
تحدّد هذه السمة "account_found": "false"، كما في المثال التالي:
HTTP/1.1 404 Not found
Content-Type: application/json;charset=UTF-8
{
"account_found":"false",
}
التعامل مع الربط التلقائي (تحقيق النية)
بعد أن يمنح المستخدِم موافقته على الوصول إلى ملفه الشخصي في Google، ترسل Google طلب يتضمن تأكيدًا موقَّعًا على هوية مستخدم Google. تشير رسالة الأشكال البيانية يحتوي تأكيد البيانات على معلومات تشتمل على رقم تعريف حساب المستخدم على Google، والاسم وعنوان البريد الإلكتروني. نقطة نهاية تبادل الرموز المميّزة التي تم ضبطها المشروع أن يتعامل مع هذا الطلب.
في حال توفُّر حساب Google المناسب في المصادقة
فإن نقطة نهاية تبادل الرمز المميز تقوم بإرجاع رمز مميز للمستخدم. إذا كانت
لا يتطابق حساب Google مع مستخدم حالي، نقطة نهاية تبادل الرموز المميّزة
تعرض الخطأ linking_error وعرض login_hint اختياري.
يكون الطلب بالشكل التالي:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&intent=get&assertion=JWT&scope=SCOPES&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
يجب أن تتمكّن نقطة نهاية تبادل الرموز المميّزة من معالجة المَعلمات التالية:
| مَعلمات نقطة نهاية الرمز المميّز | |
|---|---|
intent |
بالنسبة إلى هذه الطلبات، تكون قيمة هذه المَعلمة هي get. |
grant_type |
تمثّل هذه السمة نوع الرمز المميّز الذي يتم تبادله. بالنسبة لهذه الطلبات، سيتم
المعلَمة urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
يشير هذا المصطلح إلى رمز JSON المميّز للويب (JWT) ويقدِّم تأكيدًا موقَّعًا على بيانات وهوية المستخدم. يحتوي JWT على معلومات تتضمن عنوان URL الخاص رقم تعريف حساب Google والاسم وعنوان البريد الإلكتروني |
scope |
اختياري: أي نطاقات تم ضبط Google فيها للطلب منها المستخدمين. |
client_id |
معرِّف العميل الذي عيّنته لـ Google. |
client_secret |
سر العميل الذي خصّصته لـ Google. |
للردّ على طلبات intent لـ get، يجب أن تنفِّذ نقطة نهاية تبادل الرموز المميّزة الخطوات التالية:
- التحقق من صحة تأكيد JWT وفك ترميزه
- تحقَّق مما إذا كان حساب Google متوفّرًا من قبل في نظام المصادقة.
التحقق من صحة تأكيد JWT وفك ترميزه
يمكنك التحقق من صحة تأكيد JWT وفك ترميزه باستخدام مكتبة فك ترميز JWT بلغتك. استخدام مفاتيح Google العامة، متاحة في JWK أو PEM، للتأكّد من توقيع الرمز المميز.
عند فك ترميز النص، يظهر تأكيد JWT على النحو التالي:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
بالإضافة إلى التحقّق من توقيع الرمز المميّز، تأكَّد من أنّ التأكيد
جهة الإصدار (الحقل iss) هي https://accounts.google.com، بحيث يمكن لشريحة الجمهور
(الحقل aud) هو معرّف العميل الذي تم تعيينه، ولم تنتهِ صلاحية الرمز المميّز.
(حقل exp).
باستخدام الحقول email وemail_verified وhd، يمكنك تحديد ما إذا كان
تستضيف Google عناوين البريد الإلكتروني وموثوقًا بها. في الحالات التي تواجه فيها Google
موثوقية المستخدم المعروف حاليًا بأنه صاحب الحساب الشرعي
ويمكنك تخطي كلمة المرور أو طرق التحديات الأخرى. بخلاف ذلك، فإن هذه الطرق
يمكن استخدامها للتحقّق من الحساب قبل ربطه
الحالات التي تكون فيها Google موثوقة:
- السمة
emailهي اللاحقة@gmail.com، وهذا حساب Gmail. email_verifiedصحيح وتم ضبطhd، هذا حساب G Suite.
يمكن للمستخدمين التسجيل للحصول على حسابات Google بدون استخدام Gmail أو G Suite. فعندما
لا يحتوي email على اللاحقة @gmail.com وhd غير موجود في Google
موثوقة وكلمة المرور أو طرق التحقق الأخرى للتحقق
المستخدم. يمكن أن يكون email_verified صحيحًا أيضًا لأن Google تحققت في البداية من صحة
المستخدم عند إنشاء حساب Google، ولكن ملكية الجهة الخارجية
ربما تغير حساب بريدك الإلكتروني منذ ذلك الحين.
التأكّد من توفّر حساب Google في نظام المصادقة
تحقق مما إذا كان أي من الشروط التالية صحيحًا:
- رقم تعريف حساب Google، الوارد في حقل
subفي التأكيد، موجود في حساب المستخدم. قاعدة البيانات. - يتطابق عنوان البريد الإلكتروني الوارد في التأكيد مع مستخدم في قاعدة بيانات المستخدم الخاصة بك.
في حال العثور على حساب للمستخدم، عليك إصدار رمز دخول وعرض القيم في كائن JSON في نص استجابة HTTPS، كما في المثال التالي:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "refresh_token": "REFRESH_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
في بعض الحالات، قد يتعذّر على المستخدم ربط الحساب استنادًا إلى الرمز المميّز للمعرّف. إذا كان
لأي سبب من الأسباب، تحتاج نقطة نهاية تبادل الرمز المميز إلى الرد باستخدام HTTP
401 يحدد الخطأ error=linking_error، كما يبيِّن المثال التالي:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"linking_error",
"login_hint":"foo@bar.com"
}
عندما تتلقّى Google ردًّا بالخطأ 401 مع linking_error، ترسل Google
المستخدِم إلى نقطة نهاية التفويض مع استخدام login_hint كمَعلمة. تشير رسالة الأشكال البيانية
إكمال المستخدم لربط الحساب باستخدام مسار ربط OAuth في المتصفِّح
التعامل مع إنشاء الحساب باستخدام ميزة "تسجيل الدخول باستخدام حساب Google" (إنشاء هدف)
عندما يحتاج المستخدم إلى إنشاء حساب على خدمتك، ترسل Google طلبًا إلى نقطة نهاية تبادل الرموز المميّزة يحدّد intent=create.
يتّخذ الطلب الشكل التالي:
POST /token HTTP/1.1 Host: oauth2.example.com Content-Type: application/x-www-form-urlencoded response_type=token&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&scope=SCOPES&intent=create&assertion=JWT&client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET
يجب أن تكون نقطة نهاية تبادل الرموز المميزة قادرة على التعامل مع المَعلمات التالية:
| مَعلمات نقطة نهاية الرمز المميز | |
|---|---|
intent |
بالنسبة إلى هذه الطلبات، تكون قيمة هذه المَعلمة create. |
grant_type |
تمثّل هذه السمة نوع الرمز المميّز الذي يتم استبداله. بالنسبة إلى هذه الطلبات، تكون قيمة هذه المَعلمة urn:ietf:params:oauth:grant-type:jwt-bearer. |
assertion |
رمز JSON المميّز للويب (JWT) يقدّم تأكيدًا موقّعًا لهوية مستخدم Google. يحتوي رمز JWT على معلومات تتضمّن رقم تعريف حساب المستخدم على Google واسمه وعنوان بريده الإلكتروني. |
client_id |
معرّف العميل الذي خصّصته لـ Google. |
client_secret |
سرّ العميل الذي خصّصته لـ Google. |
يحتوي رمز JWT ضمن المَعلمة assertion على رقم تعريف حساب Google الخاص بالمستخدم واسمه وعنوان بريده الإلكتروني، ويمكنك استخدام هذه المعلومات لإنشاء حساب جديد على خدمتك.
للردّ على طلبات تحديد النية create، يجب أن تنفّذ نقطة نهاية تبادل الرموز المميزة الخطوات التالية:
- التحقّق من صحة تأكيد JWT وفك ترميزه
- تحقَّق من معلومات المستخدم وأنشئ حسابًا جديدًا.
التحقق من صحة تأكيد JWT وفك ترميزه
يمكنك التحقق من صحة تأكيد JWT وفك ترميزه باستخدام مكتبة فك ترميز JWT بلغتك. استخدام مفاتيح Google العامة، متاحة في JWK أو PEM، للتأكّد من توقيع الرمز المميز.
عند فك ترميز النص، يظهر تأكيد JWT على النحو التالي:
{ "sub": "1234567890", // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The assertion's issuer "aud": "123-abc.apps.googleusercontent.com", // Your server's client ID "iat": 233366400, // Unix timestamp of the assertion's creation time "exp": 233370000, // Unix timestamp of the assertion's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "email_verified": true, // true, if Google has verified the email address "hd": "example.com", // If present, the host domain of the user's GSuite email address // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/AOh14GjlTnZKHAeb94A-FmEbwZv7uJD986VOF1mJGb2YYQ", "locale": "en_US" // User's locale, from browser or phone settings }
بالإضافة إلى التحقّق من توقيع الرمز المميّز، تأكَّد من أنّ التأكيد
جهة الإصدار (الحقل iss) هي https://accounts.google.com، بحيث يمكن لشريحة الجمهور
(الحقل aud) هو معرّف العميل الذي تم تعيينه، ولم تنتهِ صلاحية الرمز المميّز.
(حقل exp).
باستخدام الحقول email وemail_verified وhd، يمكنك تحديد ما إذا كان
تستضيف Google عناوين البريد الإلكتروني وموثوقًا بها. في الحالات التي تواجه فيها Google
موثوقية المستخدم المعروف حاليًا بأنه صاحب الحساب الشرعي
ويمكنك تخطي كلمة المرور أو طرق التحديات الأخرى. بخلاف ذلك، فإن هذه الطرق
يمكن استخدامها للتحقّق من الحساب قبل ربطه
الحالات التي تكون فيها Google موثوقة:
- السمة
emailهي اللاحقة@gmail.com، وهذا حساب Gmail. email_verifiedصحيح وتم ضبطhd، هذا حساب G Suite.
يمكن للمستخدمين التسجيل للحصول على حسابات Google بدون استخدام Gmail أو G Suite. فعندما
لا يحتوي email على اللاحقة @gmail.com وhd غير موجود في Google
موثوقة وكلمة المرور أو طرق التحقق الأخرى للتحقق
المستخدم. يمكن أن يكون email_verified صحيحًا أيضًا لأن Google تحققت في البداية من صحة
المستخدم عند إنشاء حساب Google، ولكن ملكية الجهة الخارجية
ربما تغير حساب بريدك الإلكتروني منذ ذلك الحين.
التحقّق من معلومات المستخدم وإنشاء حساب جديد
تحقَّق مما إذا كان أحد الشرطين التاليين صحيحًا:
- يظهر معرّف حساب Google، الذي يمكن العثور عليه في الحقل
subفي بيان التأكيد، في قاعدة بيانات المستخدمين. - يتطابق عنوان البريد الإلكتروني في التأكيد مع مستخدم في قاعدة بيانات المستخدمين.
إذا كان أيّ من الشرطين صحيحًا، اطلب من المستخدم ربط حسابه الحالي بحساب Google. لإجراء ذلك، يجب الرد على الطلب برسالة خطأ HTTP 401 تحدّد error=linking_error وتوفّر عنوان البريد الإلكتروني للمستخدم كـ login_hint. في ما يلي نموذج ردّ:
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"error":"linking_error",
"login_hint":"foo@bar.com"
}
عندما تتلقّى Google استجابة الخطأ 401 مع linking_error، ترسل Google المستخدم إلى نقطة نهاية التفويض مع login_hint كمَعلمة. يكمل المستخدم عملية ربط الحساب باستخدام مسار ربط OAuth في المتصفّح.
إذا لم يتحقّق أي من الشرطين، أنشئ حساب مستخدم جديدًا باستخدام المعلومات المقدَّمة في رمز JWT. لا يتم عادةً ضبط كلمة مرور للحسابات الجديدة. ننصحك بإضافة ميزة "تسجيل الدخول باستخدام حساب Google" إلى منصات أخرى لتتيح للمستخدمين تسجيل الدخول باستخدام حساب Google على جميع مساحات عرض تطبيقك. بدلاً من ذلك، يمكنك إرسال رابط إلى المستخدم عبر البريد الإلكتروني لبدء عملية استرداد كلمة المرور والسماح له بضبط كلمة مرور لتسجيل الدخول على منصات أخرى.
عند اكتمال عملية الإنشاء، أصدِر رمز دخول وأدرِج القيم في عنصر JSON ضمن نص استجابة HTTPS، كما هو موضّح في المثال التالي:
{ "token_type": "Bearer", "access_token": "ACCESS_TOKEN", "refresh_token": "REFRESH_TOKEN", "expires_in": SECONDS_TO_EXPIRATION }
الحصول على معرّف عميل Google API
سيُطلب منك تقديم معرّف عميل Google API أثناء عملية التسجيل لربط الحساب.
للحصول على معرّف عميل واجهة برمجة التطبيقات باستخدام المشروع الذي أنشأته أثناء إكمال خطوات ربط حساب OAuth لإجراء ذلك، يُرجى إكمال الخطوات التالية:
- انتقِل إلى صفحة العملاء.
أنشئ مشروعًا على Google APIs أو اختَر مشروعًا حاليًا.
إذا لم يكن مشروعك يتضمّن معرّف عميل من نوع تطبيق الويب، انقر على إنشاء عميل لإنشاء معرّف. احرص على تضمين نطاق موقعك الإلكتروني في مربّع مصادر JavaScript المسموح بها. عند إجراء اختبارات أو عمليات تطوير محلية، يجب إضافة كل من
http://localhostوhttp://localhost:<port_number>إلى حقل مصادر JavaScript المعتمَدة.
التحقّق من صحة عملية التنفيذ
يمكنك التحقّق من صحة التنفيذ باستخدام أداة مساحة بروتوكول OAuth 2.0.
في الأداة، اتّبِع الخطوات التالية:
- انقر على الإعداد لفتح نافذة "إعدادات OAuth 2.0".
- في حقل مسار OAuth، اختَر من جهة العميل.
- في حقل نقاط نهاية OAuth، اختَر مخصّص.
- حدِّد نقطة نهاية OAuth 2.0 ومعرّف العميل الذي خصّصته لـ Google في الحقلَين المناسبَين.
- في قسم الخطوة 1، لا تحدّد أي نطاقات Google. بدلاً من ذلك، اترك هذا الحقل فارغًا أو اكتب نطاقًا صالحًا لخادمك (أو سلسلة عشوائية إذا كنت لا تستخدم نطاقات OAuth). عند الانتهاء، انقر على تفويض واجهات برمجة التطبيقات.
- في القسمَين الخطوة 2 والخطوة 3، اتّبِع مسار OAuth 2.0 وتأكَّد من أنّ كل خطوة تعمل على النحو المطلوب.
يمكنك التحقّق من صحة عملية التنفيذ باستخدام أداة عرض توضيحي لربط حساب Google.
في الأداة، اتّبِع الخطوات التالية:
- انقر على الزر تسجيل الدخول باستخدام حساب Google.
- اختَر الحساب الذي تريد ربطه.
- أدخِل رقم تعريف الخدمة.
- يمكنك اختياريًا إدخال نطاق واحد أو أكثر ستطلب الوصول إليه.
- انقر على بدء العرض التوضيحي.
- أكِّد أنّه يمكنك الموافقة على طلب ربط الحساب ورفضه عندما يُطلب منك ذلك.
- تأكَّد من إعادة توجيهك إلى منصتك.