שימוש ב-API בארכיטקטורת REST

במסמך הזה מוסבר איך לבצע פעולות נפוצות שקשורות למשתמשים, כמו כניסה של משתמשים ועבודה עם אסימונים, באמצעות Identity Platform API בארכיטקטורת REST.

לפני שמתחילים

כדי להשתמש ב-API בארכיטקטורת REST, צריך מפתח API של Identity Platform. כדי לקבל מפתח:

  1. נכנסים לדף Identity Providers במסוף Google Cloud .
    עוברים לדף Identity Providers

  2. לוחצים על פרטי הגדרת האפליקציה.

  3. מעתיקים את השדה apiKey.

חשוב: כל הקריאות ל-API מחייבות שימוש ב-HTTPS.

קריאה ל-API

החלפת אסימון בהתאמה אישית באסימון מזהה ובאסימון לרענון

אפשר להחליף טוקן אימות בהתאמה אישית בטוקן מזהה ובטוקן לרענון על ידי שליחת בקשת HTTP‏ POST לנקודת הקצה signInWithCustomToken.

Method: POST

Content-Type: application/json

נקודת קצה (endpoint)
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
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.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
grant_type מחרוזת סוג ההרשאה של טוקן הרענון, תמיד refresh_token.
refresh_token מחרוזת טוקן רענון של Identity Platform.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של המשתמש שרוצים ליצור.
סיסמה מחרוזת הסיסמה שהמשתמש צריך ליצור.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
tenantId מחרוזת מזהה הדייר של המשתמש שרוצים ליצור. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל שדרכה המשתמש נכנס לחשבון.
סיסמה מחרוזת הסיסמה לחשבון.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
tenantId מחרוזת מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
tenantId מחרוזת מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
requestUri מחרוזת כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה.
postBody מחרוזת מכיל את פרטי הכניסה ל-OAuth (אסימון מזהה או אסימון גישה) ואת מזהה הספק שהנפיק את פרטי הכניסה.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
returnIdpCredential בוליאני האם לכפות את החזרת פרטי הכניסה של OAuth בשגיאות הבאות: FEDERATED_USER_ID_ALREADY_LINKED ו-EMAIL_EXISTS.
tenantId מחרוזת מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
מזהה מחרוזת כתובת אימייל של המשתמש
continueUri מחרוזת כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה. במקרה השימוש הזה, מדובר רק בכתובת ה-URL הנוכחית.
tenantId מחרוזת מזהה הדייר שאליו המשתמש נכנס. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
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 קוד השפה שמתאים לאזור של המשתמש. אם מעבירים את הפרמטר הזה, הודעת האימייל לאיפוס הסיסמה שנשלחת למשתמש תהיה בשפה המקומית.
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
requestType מחרוזת סוג קוד ה-OOB שיוחזר. הערך צריך להיות PASSWORD_RESET לאיפוס סיסמה.
אימייל מחרוזת כתובת האימייל של המשתמש.
tenantId מחרוזת מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של המשתמש.

בקשה לדוגמה

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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
oobCode מחרוזת קוד הפעולה באימייל שנשלח לכתובת האימייל של המשתמש לאיפוס הסיסמה.
tenantId מחרוזת מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של המשתמש.
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
oobCode מחרוזת קוד הפעולה באימייל שנשלח לכתובת האימייל של המשתמש לאיפוס הסיסמה.
newPassword מחרוזת הסיסמה החדשה של המשתמש.
tenantId מחרוזת מזהה הדייר של המשתמש שמבקש איפוס סיסמה. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של המשתמש.
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 קוד השפה שמתאים ללוקאל של המשתמש. העברת הפרמטר הזה תגרום ללוקליזציה של ביטול שינוי האימייל שנשלח למשתמש.
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון מזהה של Identity Platform עבור המשתמש.
אימייל מחרוזת כתובת האימייל החדשה של המשתמש.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון מזהה של Identity Platform עבור המשתמש.
סיסמה מחרוזת הסיסמה החדשה של המשתמש.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון מזהה של Identity Platform עבור המשתמש.
displayName מחרוזת השם המוצג החדש של המשתמש.
photoUrl מחרוזת כתובת ה-URL של התמונה החדשה של המשתמש.
deleteAttribute רשימת מחרוזות רשימה של מאפיינים למחיקה, למשל 'DISPLAY_NAME' או 'PHOTO_URL'. הפעולה הזו תגרום לביטול הערכים האלה.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון המזהה של החשבון ב-Identity Platform.
Response Payload
שם המאפיין סוג תיאור
משתמשים רשימה של אובייקטים מסוג JSON החשבון שמשויך לטוקן מזהה נתון של Identity Platform. פרטים נוספים מופיעים בהמשך.
Response Payload (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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת טוקן ה-ID של Identity Platform של החשבון שאליו מנסים לקשר את פרטי הכניסה.
אימייל מחרוזת כתובת האימייל לקשר לחשבון.
סיסמה מחרוזת הסיסמה החדשה של החשבון.
returnSecureToken מחרוזת האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
Response Payload
שם המאפיין סוג תיאור
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 למשתמש על ידי שליחת בקשת HTTP‏ POST לנקודת הקצה Auth verifyAssertion.

Method: POST

Content-Type: application/json

נקודת קצה (endpoint)
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת טוקן ה-ID של Identity Platform של החשבון שאליו מנסים לקשר את פרטי הכניסה.
requestUri מחרוזת כתובת ה-URI שאליה ספק ה-IdP מפנה את המשתמש בחזרה.
postBody מחרוזת מכיל את פרטי הכניסה ל-OAuth (אסימון מזהה או אסימון גישה) ואת מזהה הספק שהנפיק את פרטי הכניסה.
returnSecureToken בוליאני האם להחזיר מזהה ואסימון רענון. הערך צריך להיות תמיד true.
returnIdpCredential בוליאני האם לכפות את החזרת פרטי הכניסה של OAuth בשגיאות הבאות: FEDERATED_USER_ID_ALREADY_LINKED ו-EMAIL_EXISTS.
Response Payload
שם המאפיין סוג תיאור
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון המזהה של החשבון ב-Identity Platform.
deleteProvider רשימת מחרוזות רשימה של מזהי ספקים לביטול הקישור, לדוגמה: 'google.com',‏ 'password' וכו'.
Response Payload
שם המאפיין סוג תיאור
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 קוד השפה שמתאים לאזור של המשתמש. אם תעבירו את הפרמטר הזה, הודעת האימות באימייל תישלח למשתמש בשפה המקומית שלו.
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
requestType מחרוזת סוג קוד האישור שיישלח. תמיד צריך להיות 'VERIFY_EMAIL'.
idToken מחרוזת אסימון ה-ID של המשתמש ב-Identity Platform לאימות.
Response Payload
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של החשבון.

בקשה לדוגמה

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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
oobCode מחרוזת קוד הפעולה שנשלח לאימייל של המשתמש לצורך אימות האימייל.
tenantId מחרוזת מזהה הדייר של המשתמש שמאמת את כתובת האימייל. המאפיין הזה משמש רק במערכות מרובות דיירים.
Response Payload
שם המאפיין סוג תיאור
אימייל מחרוזת כתובת האימייל של החשבון.
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]
מטען ייעודי (payload) של גוף הבקשה
שם המאפיין סוג תיאור
idToken מחרוזת אסימון ה-ID של המשתמש שרוצים למחוק ב-Identity Platform.
Response Payload
שם המאפיין סוג תיאור

בקשה לדוגמה

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.