استخدام واجهة برمجة التطبيقات
يمكنك الاستعلام عن الواجهة الخلفية لـ Firebase Auth من خلال REST API. يمكن استخدام هذا في عمليات مختلفة مثل إنشاء مستخدمين جدد وتسجيل الدخول إلى المستخدمين الحاليين وتحرير هؤلاء المستخدمين أو حذفهم.
في هذا المستند، يشير API_KEY
إلى مفتاح Web API، والذي يمكن الحصول عليه من صفحة إعدادات المشروع في وحدة تحكم المشرف لديك.
تبادل الرمز المميز المخصص لمعرف ورمز التحديث
يمكنك استبدال رمز المصادقة المخصص بمعرف ورمز التحديث عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth verifyCustomToken
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
رمز مميز | خيط | رمز Firebase Auth المخصص الذي يمكن من خلاله إنشاء معرف وتحديث زوج الرمز المميز. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف Firebase Auth المميز الذي تم إنشاؤه من الرمز المميز المخصص المقدم. |
refreshToken | خيط | رمز تحديث Firebase Auth المميز الذي تم إنشاؤه من الرمز المميز المخصص المقدم. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID ورمز التحديث المرتبط بالرمز المميز.
استجابة العينة
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
رموز الأخطاء الشائعة
- INVALID_CUSTOM_TOKEN: تنسيق الرمز المميز المخصص غير صحيح أو الرمز غير صالح لسبب ما (على سبيل المثال، منتهي الصلاحية، التوقيع غير صالح وما إلى ذلك)
- CREDENTIAL_MISMATCH: يتوافق الرمز المميز مع مشروع Firebase مختلف.
استبدل رمز التحديث برمز معرف
يمكنك تحديث رمز Firebase ID المميز عن طريق إصدار طلب HTTP POST
إلى نقطة النهاية securetoken.googleapis.com
.
الطريقة: مشاركة
نوع المحتوى: application/x-www-form-urlencoded
نقطة النهايةhttps://securetoken.googleapis.com/v1/token?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
Grant_type | خيط | نوع منح رمز التحديث، دائمًا "refresh_token". |
refresh_token | خيط | رمز تحديث مصادقة Firebase. |
اسم الخاصية | يكتب | وصف |
---|---|---|
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
token_type | خيط | نوع رمز التحديث، دائمًا "حامل". |
refresh_token | خيط | رمز تحديث Firebase Auth المقدم في الطلب أو رمز تحديث جديد. |
id_token | خيط | رمز معرف مصادقة Firebase. |
معرف المستخدم | خيط | المعرف الفريد المطابق لرمز المعرف المقدم. |
معرف المشروع | خيط | معرف مشروع Firebase الخاص بك. |
طلب عينة
curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID الجديد ورمز التحديث.
استجابة العينة
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
رموز الأخطاء الشائعة
- TOKEN_EXPIRED: لم تعد بيانات اعتماد المستخدم صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- USER_DISABLED: تم تعطيل حساب المستخدم من قبل المسؤول.
- USER_NOT_FOUND: لم يتم العثور على المستخدم المطابق لرمز التحديث. من المحتمل أنه تم حذف المستخدم.
- مفتاح API غير صالح. يرجى تمرير مفتاح API صالح. (تم توفير مفتاح API غير صالح)
- INVALID_REFRESH_TOKEN: تم توفير رمز تحديث غير صالح.
- تم استلام حمولة JSON غير صالحة. اسم غير معروف \"refresh_tokens\": لا يمكن ربط معلمة الاستعلام. تعذر العثور على الحقل "refresh_tokens" في رسالة الطلب.
- INVALID_GRANT_TYPE: نوع المنحة المحدد غير صالح.
- MISSING_REFRESH_TOKEN: لم يتم توفير رمز مميز للتحديث.
- PROJECT_NUMBER_MISMATCH: لا يتطابق رقم المشروع الخاص برمز التحديث مع رقم مفتاح API المقدم.
قم بالتسجيل باستخدام البريد الإلكتروني / كلمة المرور
يمكنك إنشاء مستخدم جديد للبريد الإلكتروني وكلمة المرور عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية signupNewUser
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | البريد الإلكتروني الذي سيقوم المستخدم بإنشائه. |
كلمة المرور | خيط | كلمة المرور التي سيقوم المستخدم بإنشائها. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم الذي تم إنشاؤه حديثًا. |
بريد إلكتروني | خيط | البريد الإلكتروني للمستخدم الذي تم إنشاؤه حديثًا. |
refreshToken | خيط | رمز تحديث Firebase Auth للمستخدم الذي تم إنشاؤه حديثًا. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
المعرف المحلي | خيط | معرف المستخدم الذي تم إنشاؤه حديثًا. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID ورمز التحديث المرتبط بالحساب الجديد.
استجابة العينة
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
رموز الأخطاء الشائعة
- EMAIL_EXISTS: عنوان البريد الإلكتروني قيد الاستخدام بالفعل من قبل حساب آخر.
- OPERATION_NOT_ALLOWED: تم تعطيل تسجيل الدخول بكلمة المرور لهذا المشروع.
- TOO_MANY_ATTEMPTS_TRY_LATER: لقد قمنا بحظر جميع الطلبات من هذا الجهاز بسبب نشاط غير عادي. حاول مرة أخرى في وقت لاحق.
تسجيل الدخول باستخدام البريد الإلكتروني / كلمة المرور
يمكنك تسجيل دخول مستخدم باستخدام البريد الإلكتروني وكلمة المرور عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth verifyPassword
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | البريد الإلكتروني الذي يقوم المستخدم بتسجيل الدخول به. |
كلمة المرور | خيط | كلمة المرور للحساب. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم الذي تمت مصادقته. |
بريد إلكتروني | خيط | البريد الإلكتروني للمستخدم المصادق عليه. |
refreshToken | خيط | رمز تحديث Firebase Auth للمستخدم الذي تمت مصادقته. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
المعرف المحلي | خيط | معرف المستخدم المصادق عليه. |
مسجل | منطقية | ما إذا كان البريد الإلكتروني لحساب موجود. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID ورمز التحديث المرتبط بحساب البريد الإلكتروني/كلمة المرور الحالي.
استجابة العينة
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
رموز الأخطاء الشائعة
- EMAIL_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
- INVALID_PASSWORD: كلمة المرور غير صالحة أو أن المستخدم ليس لديه كلمة مرور.
- USER_DISABLED: تم تعطيل حساب المستخدم من قبل المسؤول.
الدخول بتخفي
يمكنك تسجيل دخول مستخدم بشكل مجهول عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية signupNewUser
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم الذي تم إنشاؤه حديثًا. |
بريد إلكتروني | خيط | وبما أن المستخدم مجهول، فيجب أن يكون هذا فارغًا. |
refreshToken | خيط | رمز تحديث Firebase Auth للمستخدم الذي تم إنشاؤه حديثًا. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
المعرف المحلي | خيط | معرف المستخدم الذي تم إنشاؤه حديثًا. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم المجهول.
استجابة العينة
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
رموز الأخطاء الشائعة
- OPERATION_NOT_ALLOWED: تم تعطيل تسجيل دخول المستخدم المجهول لهذا المشروع.
قم بتسجيل الدخول باستخدام بيانات اعتماد OAuth
يمكنك تسجيل دخول مستخدم باستخدام بيانات اعتماد OAuth عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth verifyAssertion
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
requestUri | خيط | معرف URI الذي يقوم IDP بإعادة توجيه المستخدم إليه مرة أخرى. |
postBody | خيط | يحتوي على بيانات اعتماد OAuth (رمز معرف أو رمز وصول) ومعرف الموفر الذي يصدر بيانات الاعتماد. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
returnIdpCredential | منطقية | ما إذا كان سيتم فرض إرجاع بيانات اعتماد OAuth على الأخطاء التالية: FEDERATED_USER_ID_ALREADY_LINKED وEMAIL_EXISTS. |
اسم الخاصية | يكتب | وصف |
---|---|---|
federatedId | خيط | يحدد المعرف الفريد حساب IdP. |
معرف_الموفر | خيط | معرف الموفر المرتبط (على سبيل المثال، "google.com" لموفر Google). |
المعرف المحلي | خيط | معرف المستخدم المصادق عليه. |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني لتسجيل الدخول. |
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
com.oauthIdToken | خيط | رمز معرف OIDC إذا كان متاحًا. |
oauthAccessToken | خيط | رمز وصول OAuth إذا كان متاحًا. |
oauthTokenSecret | خيط | سر رمز OAuth 1.0 إذا كان متاحًا. |
معلومات المستخدم الخام | خيط | استجابة JSON المقسمة التي تحتوي على جميع بيانات IdP المطابقة لبيانات اعتماد OAuth المقدمة. |
الاسم الأول | خيط | الاسم الأول للحساب. |
اسم العائلة | خيط | الاسم الأخير للحساب. |
الاسم الكامل | خيط | الاسم الكامل للحساب. |
اسم العرض | خيط | الاسم المعروض للحساب. |
photoUrl | خيط | رابط الصورة للحساب. |
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم الذي تمت مصادقته. |
refreshToken | خيط | رمز تحديث Firebase Auth للمستخدم الذي تمت مصادقته. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
needConfirmation | منطقية | ما إذا كان هناك حساب آخر بنفس بيانات الاعتماد موجودًا بالفعل. سيحتاج المستخدم إلى تسجيل الدخول إلى الحساب الأصلي ثم ربط بيانات الاعتماد الحالية به. |
نموذج طلب مع رمز معرف OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج الاستجابة باستخدام رمز معرف OAuth
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
نموذج طلب مع رمز وصول OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج الاستجابة باستخدام رمز وصول OAuth
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
نموذج طلب باستخدام بيانات اعتماد Twitter OAuth 1.0
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج للاستجابة باستخدام بيانات اعتماد Twitter OAuth 1.0
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
رموز الأخطاء الشائعة
- OPERATION_NOT_ALLOWED: تم تعطيل الموفر المقابل لهذا المشروع.
- INVALID_IDP_RESPONSE: بيانات اعتماد المصادقة المقدمة غير صحيحة أو انتهت صلاحيتها.
جلب موفري البريد الإلكتروني
يمكنك البحث عن جميع مقدمي الخدمة المرتبطين ببريد إلكتروني محدد عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth createAuthUri
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
معرف | خيط | عنوان البريد الإلكتروني للمستخدم |
continueUri | خيط | معرف URI الذي يقوم IDP بإعادة توجيه المستخدم إليه مرة أخرى. بالنسبة لحالة الاستخدام هذه، هذا هو عنوان URL الحالي فقط. |
اسم الخاصية | يكتب | وصف |
---|---|---|
allProviders | قائمة السلاسل | قائمة الموفرين الذين قام المستخدم بتسجيل الدخول معهم مسبقًا. |
مسجل | منطقية | ما إذا كان البريد الإلكتروني لحساب موجود |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. يحتوي الرد على قائمة الموفرين المرتبطين بالبريد الإلكتروني.
استجابة العينة
{ "allProviders": [ "password", "google.com" ], "registered": true }
رموز الأخطاء الشائعة
- INVALID_EMAIL: عنوان البريد الإلكتروني منسق بشكل سيء.
إرسال البريد الإلكتروني لإعادة تعيين كلمة المرور
يمكنك إرسال بريد إلكتروني لإعادة تعيين كلمة المرور عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth getOobConfirmationCode
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]الرؤوس الاختيارية
اسم الخاصية | وصف |
---|---|
X-Firebase-اللغة | رمز اللغة المتوافق مع لغة المستخدم. سيؤدي تمرير هذا إلى ترجمة البريد الإلكتروني لإعادة تعيين كلمة المرور المرسل إلى المستخدم. |
اسم الخاصية | يكتب | وصف |
---|---|---|
نوع الطلب | خيط | نوع رمز OOB المطلوب إرجاعه. يجب أن يكون "PASSWORD_RESET" لإعادة تعيين كلمة المرور. |
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "email": "[user@example.com]" }
رموز الأخطاء الشائعة
- EMAIL_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
التحقق من رمز إعادة تعيين كلمة المرور
يمكنك التحقق من رمز إعادة تعيين كلمة المرور عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية resetPassword
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
oobCode | خيط | تم إرسال رمز إجراء البريد الإلكتروني إلى البريد الإلكتروني للمستخدم لإعادة تعيين كلمة المرور. |
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
نوع الطلب | خيط | نوع رمز إجراء البريد الإلكتروني. ينبغي أن يكون "PASSWORD_RESET". |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
رموز الأخطاء الشائعة
- OPERATION_NOT_ALLOWED: تم تعطيل تسجيل الدخول بكلمة المرور لهذا المشروع.
- EXPIRED_OOB_CODE: انتهت صلاحية رمز الإجراء.
- INVALID_OOB_CODE: رمز الإجراء غير صالح. يمكن أن يحدث هذا إذا كان الرمز مشوهًا أو منتهية الصلاحية أو تم استخدامه بالفعل.
تأكيد إعادة تعيين كلمة المرور
يمكنك تطبيق تغيير إعادة تعيين كلمة المرور عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية resetPassword
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
oobCode | خيط | تم إرسال رمز إجراء البريد الإلكتروني إلى البريد الإلكتروني للمستخدم لإعادة تعيين كلمة المرور. |
كلمة المرور الجديدة | خيط | كلمة المرور الجديدة للمستخدم. |
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
نوع الطلب | خيط | نوع رمز إجراء البريد الإلكتروني. ينبغي أن يكون "PASSWORD_RESET". |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
رموز الأخطاء الشائعة
- OPERATION_NOT_ALLOWED: تم تعطيل تسجيل الدخول بكلمة المرور لهذا المشروع.
- EXPIRED_OOB_CODE: انتهت صلاحية رمز الإجراء.
- INVALID_OOB_CODE: رمز الإجراء غير صالح. يمكن أن يحدث هذا إذا كان الرمز مشوهًا أو منتهية الصلاحية أو تم استخدامه بالفعل.
- USER_DISABLED: تم تعطيل حساب المستخدم من قبل المسؤول.
تغيير الايميل
يمكنك تغيير البريد الإلكتروني للمستخدم عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]رؤوس اختيارية
اسم الخاصية | وصف |
---|---|
X-Firebase-اللغة | رمز اللغة المتوافق مع لغة المستخدم. سيؤدي تمرير هذا إلى ترجمة إلغاء تغيير البريد الإلكتروني المرسل إلى المستخدم. |
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم. |
بريد إلكتروني | خيط | البريد الإلكتروني الجديد للمستخدم. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
idToken | خيط | رمز معرف مصادقة Firebase الجديد للمستخدم. |
refreshToken | خيط | رمز تحديث مصادقة Firebase. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID الجديد ورمز التحديث المرتبط بالمستخدم.
استجابة العينة
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
رموز الأخطاء الشائعة
- EMAIL_EXISTS: عنوان البريد الإلكتروني قيد الاستخدام بالفعل بواسطة حساب آخر.
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
تغيير كلمة المرور
يمكنك تغيير كلمة مرور المستخدم عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم. |
كلمة المرور | خيط | كلمة المرور الجديدة للمستخدم. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
idToken | خيط | رمز معرف مصادقة Firebase الجديد للمستخدم. |
refreshToken | خيط | رمز تحديث مصادقة Firebase. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز Firebase ID الجديد ورمز التحديث المرتبط بالمستخدم.
استجابة العينة
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- WEAK_PASSWORD: يجب أن تتكون كلمة المرور من 6 أحرف أو أكثر.
تحديث الملف
يمكنك تحديث ملف تعريف المستخدم (الاسم المعروض / عنوان URL للصورة) عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم. |
اسم العرض | خيط | اسم العرض الجديد للمستخدم. |
photoUrl | خيط | عنوان URL الجديد للصورة الخاصة بالمستخدم. |
deleteAttribute | قائمة السلاسل | قائمة السمات المطلوب حذفها، "DISPLAY_NAME" أو "PHOTO_URL". وهذا سوف يبطل هذه القيم. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | عنوان البريد الإلكتروني للمستخدم. |
اسم العرض | خيط | اسم العرض الجديد للمستخدم. |
photoUrl | خيط | عنوان URL الجديد للصورة الخاصة بالمستخدم. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
idToken | خيط | رمز معرف مصادقة Firebase الجديد للمستخدم. |
refreshToken | خيط | رمز تحديث مصادقة Firebase. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "localId": "tRcfmLH...", "email": "user@example2.com", "displayName": "John Doe", "photoUrl": "[http://localhost:8080/img1234567890/photo.png]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example2.com", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
الحصول على بيانات المستخدم
يمكنك الحصول على بيانات المستخدم عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth getAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف Firebase للحساب. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المستخدمين | قائمة كائنات JSON | الحساب المرتبط برمز Firebase ID المحدد. تحقق أدناه لمزيد من التفاصيل. |
users
)اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني للحساب أم لا. |
اسم العرض | خيط | الاسم المعروض للحساب. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
photoUrl | خيط | رابط الصورة للحساب. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
كلمة المرور تم تحديثها | مزدوج | الطابع الزمني، بالمللي ثانية، الذي تم فيه تغيير كلمة مرور الحساب آخر مرة. |
صالح منذ | خيط | الطابع الزمني، بالثواني، الذي يمثل الحد، والذي قبله يعتبر رمز Firebase ID ملغى. |
عاجز | منطقية | سواء تم تعطيل الحساب أم لا. |
lastLoginAt | خيط | الطابع الزمني، بالمللي ثانية، الذي تم فيه تسجيل الدخول إلى الحساب آخر مرة. |
أنشئت في | خيط | الطابع الزمني، بالمللي ثانية، الذي تم إنشاء الحساب فيه. |
customAuth | منطقية | ما إذا كان قد تم مصادقة الحساب من قبل المطور. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. سيحتوي الرد على جميع معلومات المستخدم المرتبطة بالحساب.
استجابة العينة
{ "users": [ { "localId": "ZY1rJK0...", "email": "user@example.com", "emailVerified": false, "displayName": "John Doe", "providerUserInfo": [ { "providerId": "password", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png", "federatedId": "user@example.com", "email": "user@example.com", "rawId": "user@example.com", "screenName": "user@example.com" } ], "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "passwordUpdatedAt": 1.484124177E12, "validSince": "1484124177", "disabled": false, "lastLoginAt": "1484628946000", "createdAt": "1484124142000", "customAuth": false } ] }
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- USER_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
الارتباط مع البريد الإلكتروني/كلمة المرور
يمكنك ربط بريد إلكتروني/كلمة مرور بمستخدم حالي عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز Firebase ID المميز للحساب الذي تحاول ربط بيانات الاعتماد به. |
بريد إلكتروني | خيط | البريد الإلكتروني المراد ربطه بالحساب. |
كلمة المرور | خيط | كلمة المرور الجديدة للحساب. |
returnSecureToken | خيط | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
اسم العرض | خيط | الاسم المعروض للحساب. |
photoUrl | خيط | رابط الصورة للحساب. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني للحساب أم لا. |
idToken | خيط | رمز معرف مصادقة Firebase الجديد للمستخدم. |
refreshToken | خيط | رمز تحديث مصادقة Firebase. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
استجابة العينة
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ], "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "emailVerified": false }
رموز الأخطاء الشائعة
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN: لم تعد بيانات اعتماد المستخدم صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- TOKEN_EXPIRED: لم تعد بيانات اعتماد المستخدم صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- WEAK_PASSWORD: يجب أن تتكون كلمة المرور من 6 أحرف أو أكثر.
الارتباط ببيانات اعتماد OAuth
يمكنك ربط بيانات اعتماد OAuth بمستخدم عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth verifyAssertion
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز Firebase ID المميز للحساب الذي تحاول ربط بيانات الاعتماد به. |
requestUri | خيط | معرف URI الذي يقوم IDP بإعادة توجيه المستخدم إليه مرة أخرى. |
postBody | خيط | يحتوي على بيانات اعتماد OAuth (رمز معرف أو رمز وصول) ومعرف الموفر الذي يصدر بيانات الاعتماد. |
returnSecureToken | منطقية | ما إذا كان سيتم إرجاع المعرف ورمز التحديث أم لا. ينبغي أن يكون صحيحا دائما. |
returnIdpCredential | منطقية | ما إذا كان سيتم فرض إرجاع بيانات اعتماد OAuth على الأخطاء التالية: FEDERATED_USER_ID_ALREADY_LINKED وEMAIL_EXISTS. |
اسم الخاصية | يكتب | وصف |
---|---|---|
federatedId | خيط | يحدد المعرف الفريد حساب IdP. |
معرف_الموفر | خيط | معرف الموفر المرتبط (على سبيل المثال، "google.com" لموفر Google). |
المعرف المحلي | خيط | معرف المستخدم المصادق عليه. |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني لتسجيل الدخول. |
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
com.oauthIdToken | خيط | رمز معرف OIDC إذا كان متاحًا. |
oauthAccessToken | خيط | رمز وصول OAuth إذا كان متاحًا. |
oauthTokenSecret | خيط | سر رمز OAuth 1.0 إذا كان متاحًا. |
معلومات المستخدم الخام | خيط | استجابة JSON المقسمة التي تحتوي على جميع بيانات IdP المطابقة لبيانات اعتماد OAuth المقدمة. |
الاسم الأول | خيط | الاسم الأول للحساب. |
اسم العائلة | خيط | الاسم الأخير للحساب. |
الاسم الكامل | خيط | الاسم الكامل للحساب. |
اسم العرض | خيط | الاسم المعروض للحساب. |
photoUrl | خيط | رابط الصورة للحساب. |
idToken | خيط | رمز معرف مصادقة Firebase للمستخدم الذي تمت مصادقته. |
refreshToken | خيط | رمز تحديث Firebase Auth للمستخدم الذي تمت مصادقته. |
ينتهي في | خيط | عدد الثواني التي تنتهي فيها صلاحية رمز التعريف. |
نموذج طلب مع رمز معرف OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج الاستجابة باستخدام رمز معرف OAuth
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
نموذج طلب مع رمز وصول OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج الاستجابة باستخدام رمز وصول OAuth
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
نموذج طلب باستخدام بيانات اعتماد Twitter OAuth 1.0
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
. تحتوي الاستجابة على رمز معرف Firebase ورمز التحديث المرتبط بالمستخدم الذي تمت مصادقته.
نموذج للاستجابة باستخدام بيانات اعتماد Twitter OAuth 1.0
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
رموز الأخطاء الشائعة
- OPERATION_NOT_ALLOWED: تم تعطيل الموفر المقابل لهذا المشروع.
- INVALID_IDP_RESPONSE: بيانات اعتماد المصادقة المقدمة غير صحيحة أو انتهت صلاحيتها.
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- EMAIL_EXISTS: عنوان البريد الإلكتروني قيد الاستخدام بالفعل من قبل حساب آخر.
- FEDERATED_USER_ID_ALREADY_LINKED: بيانات الاعتماد هذه مرتبطة بالفعل بحساب مستخدم مختلف.
إلغاء ربط الموفر
يمكنك إلغاء ربط موفر من مستخدم حالي عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف Firebase للحساب. |
deleteProvider | قائمة السلاسل | قائمة معرفات الموفرين المطلوب إلغاء ربطها، على سبيل المثال: "google.com"، و"كلمة المرور"، وما إلى ذلك. |
اسم الخاصية | يكتب | وصف |
---|---|---|
المعرف المحلي | خيط | معرف المستخدم الحالي. |
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
اسم العرض | خيط | الاسم المعروض للحساب. |
photoUrl | خيط | رابط الصورة للحساب. |
com.passwordHash | خيط | نسخة التجزئة من كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني للحساب أم لا. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "google.com", "federatedId": "1234567890", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg" }, { "providerId": "password", "federatedId": "user@example.com" } ], "emailVerified": "true" }
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN: بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
إرسال التحقق من البريد الإلكتروني
يمكنك إرسال التحقق من البريد الإلكتروني للمستخدم الحالي عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth getOobConfirmationCode
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]رؤوس اختيارية
اسم الخاصية | وصف |
---|---|
X-Firebase-اللغة | رمز اللغة المتوافق مع لغة المستخدم. سيؤدي تمرير هذا إلى ترجمة التحقق من البريد الإلكتروني المرسل إلى المستخدم. |
اسم الخاصية | يكتب | وصف |
---|---|---|
نوع الطلب | خيط | نوع رمز التأكيد المراد إرساله. يجب أن يكون دائمًا "VERIFY_EMAIL". |
idToken | خيط | رمز معرف Firebase المميز للمستخدم للتحقق منه. |
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "email": "user@example.com" }
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN: بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- USER_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
تأكيد التحقق من البريد الإلكتروني
يمكنك تأكيد رمز التحقق من البريد الإلكتروني عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية Auth setAccountInfo
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
oobCode | خيط | تم إرسال رمز الإجراء إلى البريد الإلكتروني للمستخدم للتحقق من البريد الإلكتروني. |
اسم الخاصية | يكتب | وصف |
---|---|---|
بريد إلكتروني | خيط | البريد الإلكتروني للحساب. |
اسم العرض | خيط | الاسم المعروض للحساب. |
photoUrl | خيط | رابط الصورة للحساب. |
com.passwordHash | خيط | تجزئة كلمة المرور. |
ProviderUserInfo | قائمة كائنات JSON | قائمة بجميع كائنات الموفر المرتبطة التي تحتوي على "providerId" و"federatedId". |
تم التحقق من البريد الإلكتروني | منطقية | ما إذا كان قد تم التحقق من البريد الإلكتروني للحساب أم لا. |
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
استجابة العينة
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
رموز الأخطاء الشائعة
- EXPIRED_OOB_CODE: انتهت صلاحية رمز الإجراء.
- INVALID_OOB_CODE: رمز الإجراء غير صالح. يمكن أن يحدث هذا إذا كان الرمز مشوهًا أو منتهية الصلاحية أو تم استخدامه بالفعل.
- USER_DISABLED: تم تعطيل حساب المستخدم من قبل المسؤول.
- EMAIL_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
حذف الحساب
يمكنك حذف مستخدم حالي عن طريق إصدار طلب HTTP POST
إلى نقطة نهاية deleteAccount
.
الطريقة: مشاركة
نوع المحتوى: application/json
نقطة النهايةhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]طلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
idToken | خيط | رمز معرف Firebase المميز للمستخدم المراد حذفه. |
اسم الخاصية | يكتب | وصف |
---|
طلب عينة
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
تتم الإشارة إلى الطلب الناجح من خلال رمز حالة HTTP 200 OK
.
رموز الأخطاء الشائعة
- INVALID_ID_TOKEN:بيانات اعتماد المستخدم لم تعد صالحة. يجب على المستخدم تسجيل الدخول مرة أخرى.
- USER_NOT_FOUND: لا يوجد سجل مستخدم يتوافق مع هذا المعرف. ربما تم حذف المستخدم.
محاكي مصادقة Firebase
تشتمل مجموعة Firebase Local Emulator Suite على محاكي المصادقة ، والذي يمكن استخدامه للنماذج الأولية المحلية واختبار تدفقات المصادقة. يكشف المحاكي عن نقاط نهاية REST التالية.
مسح حسابات المستخدمين
إزالة كافة الحسابات في المشروع المحدد، بغض النظر عن الحالة.
الطريقة: حذف
نقطة النهاية لاحظ أن 9099
هو المنفذ الافتراضي لمحاكي المصادقة. تحقق من إخراج المحطة الطرفية لمعرفة المنفذ الفعلي المستخدم.
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
الحصول على تكوين المحاكي
احصل على تكوين خاص بالمحاكي للمشروع المحدد.
الطريقة: احصل على
نقطة النهاية لاحظ أن 9099
هو المنفذ الافتراضي لمحاكي المصادقة. تحقق من إخراج المحطة الطرفية لمعرفة المنفذ الفعلي المستخدم.
http://localhost:9099/emulator/v1/projects/{project-id}/configحمولة الاستجابة
اسم الخاصية | يكتب | وصف |
---|---|---|
تسجيل الدخول | هدف | كائن تكوين تسجيل الدخول الذي يحتوي على مفتاح واحد، allowDuplicateEmails (منطقي). |
تكوين محاكي التصحيح
قم بتحديث التكوين الخاص بالمحاكي للمشروع المحدد.
الطريقة: التصحيح
نقطة النهاية لاحظ أن 9099
هو المنفذ الافتراضي لمحاكي المصادقة. تحقق من إخراج المحطة الطرفية لمعرفة المنفذ الفعلي المستخدم.
نوع المحتوى: application/json
http://localhost:9099/emulator/v1/projects/{project-id}/configطلب حمولة الجسم
اسم الخاصية | يكتب | وصف |
---|---|---|
تسجيل الدخول | هدف | كائن تكوين تسجيل الدخول المطلوب بمفتاح واحد، allowDuplicateEmails (منطقي). |
اسم الخاصية | يكتب | وصف |
---|---|---|
تسجيل الدخول | هدف | كائن تكوين تسجيل الدخول بعد الطلب بمفتاح واحد، allowDuplicateEmails (منطقي). |
استرداد رموز المصادقة خارج النطاق
إذا كانت تدفقات المصادقة التي تختبرها تؤدي عادةً إلى إنشاء رموز خارج النطاق (على سبيل المثال، رموز التحقق من البريد الإلكتروني ورموز إعادة تعيين كلمة المرور)، يقوم المحاكي بتخزين هذه الرموز داخليًا حتى يتم استخدامها.
الطريقة: احصل على
نقطة النهاية لاحظ أن 9099
هو المنفذ الافتراضي لمحاكي المصادقة. تحقق من إخراج المحطة الطرفية لمعرفة المنفذ الفعلي المستخدم.
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodesحمولة الاستجابة
اسم الخاصية | يكتب | وصف |
---|---|---|
com.oobCodes | مجموعة مصفوفة | مجموعة من الكائنات تحتوي على تفاصيل جميع رموز التأكيد المعلقة. يحتوي كل كائن على email (سلسلة)، و oobCode (سلسلة)، و oobLink (سلسلة)، و requestType (سلسلة) |
استرجاع رموز التحقق عبر الرسائل القصيرة
إذا كنت تختبر تدفقات مصادقة الهاتف/الرسائل النصية القصيرة، يقوم المحاكي بتخزين رموز الرسائل القصيرة داخليًا حتى يتم استخدامها.
الطريقة: احصل على
نقطة النهاية لاحظ أن 9099
هو المنفذ الافتراضي لمحاكي المصادقة. تحقق من إخراج المحطة الطرفية لمعرفة المنفذ الفعلي المستخدم.
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodesحمولة الاستجابة
اسم الخاصية | يكتب | وصف |
---|---|---|
رموز التحقق | مجموعة مصفوفة | مجموعة من الكائنات تحتوي على تفاصيل جميع رموز التحقق المعلقة. يحتوي كل كائن على phoneNumber (سلسلة) ورمز sessionCode (سلسلة). |
استجابة الخطأ
تنسيق الاستجابة للخطأ
في أي وقت يتم إرجاع خطأ من الخادم الخلفي لأي من واجهات برمجة التطبيقات المذكورة أعلاه، سيكون الرد بالتنسيق التالي.
استجابة العينة
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
يتم الحصول على رمز الخطأ من حقل الرسالة. تشير جميع رموز الخطأ أعلاه إلى محتوى حقل الرسالة.