שימוש ב-API בארכיטקטורת REST
במסמך הזה מוסבר איך לבצע פעולות נפוצות שקשורות למשתמשים, כמו כניסה של משתמשים ועבודה עם אסימונים, באמצעות Identity Platform API בארכיטקטורת REST.
לפני שמתחילים
כדי להשתמש ב-API בארכיטקטורת REST, צריך מפתח API של Identity Platform. כדי לקבל מפתח:
נכנסים לדף Identity Providers במסוף Google Cloud .
עוברים לדף Identity Providersלוחצים על פרטי הגדרת האפליקציה.
מעתיקים את השדה
apiKey.
חשוב: כל הקריאות ל-API מחייבות שימוש ב-HTTPS.
קריאה ל-API
החלפת אסימון בהתאמה אישית באסימון מזהה ובאסימון לרענון
אפשר להחליף טוקן אימות בהתאמה אישית בטוקן מזהה ובטוקן לרענון על ידי שליחת בקשת HTTP POST לנקודת הקצה signInWithCustomToken.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| token | מחרוזת | אסימון בהתאמה אישית של Identity Platform שממנו אפשר ליצור זוג של אסימון מזהה ואסימון רענון. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| tenantId | מחרוזת | מזהה הדייר שאליו המשתמש נכנס. הפרמטר הזה משמש רק במקרים של ריבוי דיירים. הערך שלו חייב להיות זהה לערך של tenant_id בטוקן. |
| מאפיין (property) | שם | תיאור |
|---|---|---|
| alg | אלגוריתם | הערך צריך להיות RS256. |
| iss | מנפיק | כתובת האימייל בחשבון השירות של הפרויקט. |
| sub | נושא | כתובת האימייל בחשבון השירות של הפרויקט. |
| aud | קהל | https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit |
| IAT | השעה שבה הונפק | הזמן הנוכחי, בשניות מאז ראשית זמן יוניקס (Unix epoch). |
| exp | שעת התפוגה | הזמן שבו יפוג תוקף האסימון, בשניות מאז ראשית זמן יוניקס (Unix epoch). התאריך יכול להיות עד 3,600 שניות אחרי התאריך iat.
הערה: ההגדרה הזו קובעת רק את הזמן שבו יפוג התוקף של האסימון המותאם אישית עצמו. אבל אחרי שמתחברים לחשבון של משתמש באמצעות signInWithCustomToken(), הוא יישאר מחובר למכשיר עד שהסשן שלו יבוטל או עד שהמשתמש יתנתק. |
| uid | מזהה משתמש | המזהה הייחודי של המשתמש, באורך של 1 עד 36 תווים. |
| tenant_id | מזהה דייר (tenant) | המזהה של הדייר שאליו המשתמש נכנס. |
| תלונות (אופציונלי) | טענות מותאמות אישית אופציונליות שייכללו במשתנים של כללי האבטחה auth או request.auth. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform שנוצר מהאסימון המותאם אישית שסופק. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform שנוצר מהטוקן המותאם אישית שסופק. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה
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. התשובה מכילה את אסימון הזהות ואסימון הרענון של Identity Platform שמשויכים לאסימון המותאם אישית.
דוגמה לתשובה
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
קודי שגיאה נפוצים
- INVALID_CUSTOM_TOKEN: הפורמט של הטוקן המותאם אישית שגוי או שהטוקן לא תקף מסיבה כלשהי (למשל, פג תוקפו, החתימה לא תקפה וכו')
- CREDENTIAL_MISMATCH: האסימון המותאם אישית מתאים לפרויקט אחר של Google Cloud .
החלפת טוקן רענון באסימון מזהה
אפשר לרענן את אסימון המזהה של Identity Platform על ידי שליחת בקשת HTTP
POST לנקודת הקצה securetoken.googleapis.com.
Method: POST
Content-Type: application/x-www-form-urlencoded
נקודת קצה (endpoint)https://securetoken.googleapis.com/v1/token?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| grant_type | מחרוזת | סוג ההרשאה של טוקן הרענון, תמיד refresh_token. |
| refresh_token | מחרוזת | טוקן רענון של Identity Platform. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| expires_in | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
| token_type | מחרוזת | סוג טוקן הרענון, תמיד 'Bearer'. |
| refresh_token | מחרוזת | אסימון הרענון של Identity Platform שסופק בבקשה או אסימון רענון חדש. |
| id_token | מחרוזת | אסימון מזהה של Identity Platform. |
| user_id | מחרוזת | מספר ה-UID שמתאים לאסימון המזהה שסופק. |
| project_id | מחרוזת | מזהה הפרויקט Google Cloud . |
בקשה לדוגמה
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. התשובה תכלול את האסימון המזהה ואת אסימון הרענון החדשים של Identity Platform.
דוגמה לתשובה
{ "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: The user corresponding to the refresh token was not found. סביר להניח שהמשתמש נמחק.
- מפתח ה-API לא תקין. צריך להעביר מפתח API תקין. (צוין מפתח API לא תקין)
- INVALID_REFRESH_TOKEN: סופק טוקן רענון לא תקין.
- התקבל מטען ייעודי (payload) לא תקין של JSON. השם 'refresh_tokens' לא מוכר: אי אפשר לקשור פרמטר של שאילתה. השדה 'refresh_tokens' לא נמצא בהודעת הבקשה.
- INVALID_GRANT_TYPE: סוג ההרשאה שצוין לא חוקי.
- MISSING_REFRESH_TOKEN: לא סופק טוקן רענון.
- PROJECT_NUMBER_MISMATCH: מספר הפרויקט של אסימון הרענון לא תואם למספר הפרויקט של מפתח ה-API שצוין.
הרשמה באמצעות כתובת אימייל וסיסמה
אפשר ליצור משתמש חדש עם כתובת אימייל וסיסמה על ידי שליחת בקשת HTTP
POST לנקודת הקצה של Auth signupNewUser.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של המשתמש שרוצים ליצור. |
| סיסמה | מחרוזת | הסיסמה שהמשתמש צריך ליצור. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש שרוצים ליצור. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform עבור המשתמש שנוצר. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש החדש שנוצר. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform עבור המשתמש שנוצר. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
| localId | מחרוזת | ה-uid של המשתמש החדש שנוצר. |
בקשה לדוגמה
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. התגובה מכילה את טוקן הזהות ואת טוקן הרענון של Identity Platform שמשויכים לחשבון החדש.
דוגמה לתשובה
{ "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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל שדרכה המשתמש נכנס לחשבון. |
| סיסמה | מחרוזת | הסיסמה לחשבון. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| tenantId | מחרוזת | מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | טוקן ID של Identity Platform עבור המשתמש המאומת. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש המאומת. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform עבור המשתמש המאומת. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
| localId | מחרוזת | מזהה המשתמש המאומת. |
| רשום | בוליאני | האם כתובת האימייל שייכת לחשבון קיים. |
בקשה לדוגמה
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. התשובה תכיל את אסימון הזהות ואסימון הרענון של Identity Platform שמשויכים לחשבון הקיים עם כתובת האימייל והסיסמה.
דוגמה לתשובה
{ "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 לנקודת הקצה (endpoint) של Auth signupNewUser.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| tenantId | מחרוזת | מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform עבור המשתמש שנוצר. |
| אימייל | מחרוזת | השדה הזה צריך להיות ריק כי המשתמש אנונימי. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform עבור המשתמש שנוצר. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
| localId | מחרוזת | ה-uid של המשתמש החדש שנוצר. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התשובה מכילה את טוקן ה-ID ואת טוקן הרענון של Identity Platform שמשויכים למשתמש לא רשום.
דוגמה לתשובה
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
קודי שגיאה נפוצים
- OPERATION_NOT_ALLOWED: הכניסה של משתמשים לא רשומים מושבתת בפרויקט הזה.
כניסה באמצעות פרטי כניסה של OAuth
כדי להכניס משתמש באמצעות פרטי כניסה של OAuth, צריך לשלוח בקשת HTTP POST לנקודת הקצה של Auth verifyAssertion.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| requestUri | מחרוזת | כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה. |
| postBody | מחרוזת | מכיל את פרטי הכניסה ל-OAuth (אסימון מזהה או אסימון גישה) ואת מזהה הספק שהנפיק את פרטי הכניסה. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| returnIdpCredential | בוליאני | האם לכפות את החזרת פרטי הכניסה של OAuth בשגיאות הבאות: FEDERATED_USER_ID_ALREADY_LINKED ו-EMAIL_EXISTS. |
| tenantId | מחרוזת | מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| federatedId | מחרוזת | המזהה הייחודי מזהה את החשבון בספק הזהות. |
| providerId | מחרוזת | מזהה הספק המקושר (למשל, google.com עבור ספק Google). |
| localId | מחרוזת | מזהה המשתמש המאומת. |
| emailVerified | בוליאני | האם כתובת האימייל להתחברות מאומתת. |
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| oauthIdToken | מחרוזת | אסימון המזהה של OIDC, אם הוא זמין. |
| oauthAccessToken | מחרוזת | אסימון הגישה ל-OAuth, אם הוא זמין. |
| oauthTokenSecret | מחרוזת | סוד האסימון של OAuth 1.0, אם הוא זמין. |
| rawUserInfo | מחרוזת | תגובת JSON שהומרה למחרוזת ומכילה את כל נתוני ספק הזהויות שמתאימים לפרטי הכניסה של OAuth שסופקו. |
| firstName | מחרוזת | השם הפרטי של בעל החשבון. |
| lastName | מחרוזת | שם המשפחה שרשום בחשבון. |
| fullName | מחרוזת | השם המלא שרשום בחשבון. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| idToken | מחרוזת | טוקן ID של Identity Platform עבור המשתמש המאומת. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform עבור המשתמש המאומת. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
| 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. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
תגובה לדוגמה עם טוקן מזהה 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. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
דוגמה לתגובה עם אסימון גישה מסוג 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. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
תגובה לדוגמה עם פרטי כניסה של 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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| מזהה | מחרוזת | כתובת אימייל של המשתמש |
| continueUri | מחרוזת | כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה. במקרה השימוש הזה, מדובר רק בכתובת ה-URL הנוכחית. |
| tenantId | מחרוזת | מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| 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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
| שם המאפיין | תיאור |
|---|---|
| X-Firebase-Locale | קוד השפה שמתאים לאזור של המשתמש. אם מעבירים את הפרמטר הזה, הודעת האימייל לאיפוס הסיסמה שנשלחת למשתמש תהיה בשפה המקומית. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| requestType | מחרוזת | סוג קוד ה-OOB שיוחזר. הערך צריך להיות PASSWORD_RESET לאיפוס סיסמה. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
בקשה לדוגמה
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 לנקודת הקצה של Auth resetPassword.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| oobCode | מחרוזת | קוד הפעולה באימייל שנשלח לכתובת האימייל של המשתמש לאיפוס הסיסמה. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| requestType | מחרוזת | סוג קוד הפעולה באימייל. הערך צריך להיות 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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| oobCode | מחרוזת | קוד הפעולה באימייל שנשלח לכתובת האימייל של המשתמש לאיפוס הסיסמה. |
| newPassword | מחרוזת | הסיסמה החדשה של המשתמש. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| requestType | מחרוזת | סוג קוד הפעולה באימייל. הערך צריך להיות 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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | תיאור |
|---|---|
| X-Firebase-Locale | קוד השפה שמתאים ללוקאל של המשתמש. העברת הפרמטר הזה תגרום ללוקליזציה של ביטול שינוי האימייל שנשלח למשתמש. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform עבור המשתמש. |
| אימייל | מחרוזת | כתובת האימייל החדשה של המשתמש. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| idToken | מחרוזת | טוקן חדש של Identity Platform למשתמש. |
| refreshToken | מחרוזת | טוקן רענון של Identity Platform. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[GCIP_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התשובה תכלול את טוקן המזהה החדש של Identity Platform ואת טוקן הרענון שמשויכים למשתמש.
דוגמה לתשובה
{ "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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform עבור המשתמש. |
| סיסמה | מחרוזת | הסיסמה החדשה של המשתמש. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| idToken | מחרוזת | טוקן חדש של Identity Platform למשתמש. |
| refreshToken | מחרוזת | טוקן רענון של Identity Platform. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[GCIP_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התשובה תכלול את טוקן המזהה החדש של Identity Platform ואת טוקן הרענון שמשויכים למשתמש.
דוגמה לתשובה
{ "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 לנקודת הקצה של אימות setAccountInfo.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון מזהה של Identity Platform עבור המשתמש. |
| displayName | מחרוזת | השם המוצג החדש של המשתמש. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה החדשה של המשתמש. |
| deleteAttribute | רשימת מחרוזות | רשימה של מאפיינים למחיקה, למשל 'DISPLAY_NAME' או 'PHOTO_URL'. הפעולה הזו תגרום לביטול הערכים האלה. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של המשתמש. |
| displayName | מחרוזת | השם המוצג החדש של המשתמש. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה החדשה של המשתמש. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| idToken | מחרוזת | טוקן חדש של Identity Platform למשתמש. |
| refreshToken | מחרוזת | טוקן רענון של Identity Platform. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה
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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון המזהה של החשבון ב-Identity Platform. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| משתמשים | רשימה של אובייקטים מסוג JSON | החשבון שמשויך לטוקן מזהה נתון של Identity Platform. פרטים נוספים מופיעים בהמשך. |
users array content)
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| emailVerified | בוליאני | האם כתובת האימייל של החשבון אומתה. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| passwordUpdatedAt | double | חותמת הזמן, באלפיות השנייה, של הפעם האחרונה שבה הסיסמה לחשבון שונתה. |
| validSince | מחרוזת | חותמת הזמן, בשניות, שמסמנת גבול, שלפניו אסימוני מזהה של Identity Platform נחשבים כמבוטלים. |
| מושבת | בוליאני | אם החשבון מושבת או לא. |
| lastLoginAt | מחרוזת | חותמת הזמן, במילישניות, של הכניסה האחרונה לחשבון. |
| createdAt | מחרוזת | חותמת הזמן, באלפיות השנייה, שבה נוצר החשבון. |
| customAuth | בוליאני | האם החשבון מאומת על ידי המפתח. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש. השדה הזה מוחזר רק במקרים של ריבוי דיירים. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | טוקן ה-ID של Identity Platform של החשבון שאליו מנסים לקשר את פרטי הכניסה. |
| אימייל | מחרוזת | כתובת האימייל לקשר לחשבון. |
| סיסמה | מחרוזת | הסיסמה החדשה של החשבון. |
| returnSecureToken | מחרוזת | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| emailVerified | בוליאני | האם כתובת האימייל של החשבון אומתה. |
| idToken | מחרוזת | טוקן חדש של Identity Platform למשתמש. |
| refreshToken | מחרוזת | טוקן רענון של Identity Platform. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה
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. התגובה מכילה את אסימון הזהות ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
דוגמה לתשובה
{ "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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | טוקן ה-ID של Identity Platform של החשבון שאליו מנסים לקשר את פרטי הכניסה. |
| requestUri | מחרוזת | כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה. |
| postBody | מחרוזת | מכיל את פרטי הכניסה ל-OAuth (אסימון מזהה או אסימון גישה) ואת מזהה הספק שהנפיק את פרטי הכניסה. |
| returnSecureToken | בוליאני | האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true. |
| returnIdpCredential | בוליאני | האם לכפות את החזרת פרטי הכניסה של OAuth בשגיאות הבאות: FEDERATED_USER_ID_ALREADY_LINKED ו-EMAIL_EXISTS. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| federatedId | מחרוזת | המזהה הייחודי מזהה את החשבון בספק הזהות. |
| providerId | מחרוזת | מזהה הספק המקושר (למשל, google.com עבור ספק Google). |
| localId | מחרוזת | מזהה המשתמש המאומת. |
| emailVerified | בוליאני | האם כתובת האימייל להתחברות מאומתת. |
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| oauthIdToken | מחרוזת | אסימון המזהה של OIDC, אם הוא זמין. |
| oauthAccessToken | מחרוזת | אסימון הגישה ל-OAuth, אם הוא זמין. |
| oauthTokenSecret | מחרוזת | סוד האסימון של OAuth 1.0, אם הוא זמין. |
| rawUserInfo | מחרוזת | תגובת JSON שהומרה למחרוזת ומכילה את כל נתוני ספק הזהויות שמתאימים לפרטי הכניסה של OAuth שסופקו. |
| firstName | מחרוזת | השם הפרטי של בעל החשבון. |
| lastName | מחרוזת | שם המשפחה שרשום בחשבון. |
| fullName | מחרוזת | השם המלא שרשום בחשבון. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| idToken | מחרוזת | טוקן ID של Identity Platform עבור המשתמש המאומת. |
| refreshToken | מחרוזת | אסימון רענון של Identity Platform עבור המשתמש המאומת. |
| expiresIn | מחרוזת | מספר השניות עד שתוקף אסימון ה-ID יפוג. |
בקשה לדוגמה עם טוקן מזהה 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":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
תגובה לדוגמה עם טוקן מזהה 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":"[GCIP_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
דוגמה לתגובה עם אסימון גישה מסוג 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":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK. התגובה מכילה את אסימון המזהה ואסימון הרענון של Identity Platform שמשויכים למשתמש המאומת.
תגובה לדוגמה עם פרטי כניסה של 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 לנקודת הקצה (endpoint) של Auth setAccountInfo.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון המזהה של החשבון ב-Identity Platform. |
| deleteProvider | רשימת מחרוזות | רשימה של מזהי ספקים לביטול הקישור, לדוגמה: 'google.com', 'password' וכו'. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| localId | מחרוזת | ה-uid של המשתמש הנוכחי. |
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| passwordHash | מחרוזת | גרסת הגיבוב של הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| emailVerified | בוליאני | האם כתובת האימייל של החשבון אומתה. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[GCIP_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.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
| שם המאפיין | תיאור |
|---|---|
| X-Firebase-Locale | קוד השפה שמתאים לאזור של המשתמש. אם תעבירו את הפרמטר הזה, הודעת האימות באימייל תישלח למשתמש בשפה המקומית שלו. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| requestType | מחרוזת | סוג קוד האישור שיישלח. תמיד צריך להיות 'VERIFY_EMAIL'. |
| idToken | מחרוזת | אסימון ה-ID של המשתמש ב-Identity Platform לאימות. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[GCIP_ID_TOKEN]"}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK.
דוגמה לתשובה
{ "email": "user@example.com" }
קודי שגיאה נפוצים
- INVALID_ID_TOKEN: פרטי הכניסה של המשתמש כבר לא תקפים. המשתמש צריך להיכנס שוב לחשבון.
- USER_NOT_FOUND: אין רשומת משתמש שתואמת למזהה הזה. יכול להיות שהמשתמש נמחק.
אישור אימות האימייל
כדי לאשר קוד אימות באימייל, שולחים בקשת HTTP
POST לנקודת הקצה Auth setAccountInfo.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| oobCode | מחרוזת | קוד הפעולה שנשלח לאימייל של המשתמש לצורך אימות האימייל. |
| tenantId | מחרוזת | מזהה הדייר של המשתמש שמאמת את כתובת האימייל. המאפיין הזה משמש רק במערכות מרובות דיירים. |
| שם המאפיין | סוג | תיאור |
|---|---|---|
| אימייל | מחרוזת | כתובת האימייל של החשבון. |
| displayName | מחרוזת | השם המוצג של החשבון. |
| photoUrl | מחרוזת | כתובת ה-URL של התמונה בחשבון. |
| passwordHash | מחרוזת | גיבוב הסיסמה. |
| providerUserInfo | רשימה של אובייקטים מסוג JSON | רשימה של כל האובייקטים המקושרים של הספק שמכילים את המאפיינים providerId ו-federatedId. |
| emailVerified | בוליאני | האם כתובת האימייל של החשבון אומתה. |
בקשה לדוגמה
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 לנקודת הקצה (endpoint) של Auth deleteAccount.
Method: POST
Content-Type: application/json
נקודת קצה (endpoint)https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
| שם המאפיין | סוג | תיאור |
|---|---|---|
| idToken | מחרוזת | אסימון ה-ID של המשתמש שרוצים למחוק ב-Identity Platform. |
| שם המאפיין | סוג | תיאור |
|---|
בקשה לדוגמה
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'
בקשה שמתבצעת בהצלחה מסומנת באמצעות קוד סטטוס HTTP 200 OK.
קודי שגיאה נפוצים
- INVALID_ID_TOKEN:פרטי הכניסה של המשתמש כבר לא בתוקף. המשתמש צריך להיכנס שוב לחשבון.
- USER_NOT_FOUND: אין רשומת משתמש שתואמת למזהה הזה. יכול להיות שהמשתמש נמחק.
טיפול בשגיאות
זו דוגמה לשגיאה נפוצה שמוחזרת על ידי Identity Platform:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
],
"code": 400,
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
}
מקבלים את קוד השגיאה מהשדה message.