REST API аутентификации Firebase

Использование API

Вы можете запросить серверную часть Firebase Auth через REST API. Это можно использовать для различных операций, таких как создание новых пользователей, вход в систему существующих, а также редактирование или удаление этих пользователей.

В этом документе API_KEY относится к ключу веб-API, который можно получить на странице настроек проекта в консоли администратора.

Обмен пользовательского токена на идентификатор и токен обновления

Вы можете обменять пользовательский токен аутентификации на идентификатор и токен обновления, отправив HTTP-запрос POST к конечной точке verifyCustomToken .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
жетон нить Пользовательский токен Firebase Auth, на основе которого можно создать пару идентификаторов и токенов обновления.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
Полезная нагрузка ответа
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase, созданный на основе предоставленного пользовательского токена.
обновитьТокен нить Токен обновления 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 и токен обновления, связанный с пользовательским токеном.

Пример ответа

{
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Распространенные коды ошибок

  • INVALID_CUSTOM_TOKEN: формат пользовательского токена неверен или токен по какой-то причине недействителен (например, срок действия истек, неверная подпись и т. д.).
  • CREDENTIAL_MISMATCH: пользовательский токен соответствует другому проекту Firebase.

Обмен токена обновления на токен идентификатора

Вы можете обновить токен Firebase ID, отправив HTTP-запрос POST к конечной точке securetoken.googleapis.com .

Метод: ПОСТ

Тип контента: приложение/x-www-form-urlencoded

Конечная точка
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
тип_гранта нить Тип предоставления токена обновления, всегда «refresh_token».
обновить_токен нить Токен обновления аутентификации Firebase.
Полезная нагрузка ответа
Имя свойства Тип Описание
истекает нить Количество секунд, в течение которых истекает срок действия токена идентификатора.
тип токена нить Тип токена обновления: всегда «Носитель».
обновить_токен нить Токен обновления Firebase Auth, указанный в запросе, или новый токен обновления.
id_токен нить Токен идентификатора аутентификации Firebase.
ID пользователя нить Uid, соответствующий предоставленному токену идентификатора.
идентификатор_проекта нить Идентификатор вашего проекта 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 и токен обновления.

Пример ответа

{
  "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: токен обновления не предоставлен.

Зарегистрируйтесь с помощью электронной почты / пароля

Вы можете создать нового пользователя с адресом электронной почты и паролем, отправив HTTP-запрос POST к конечной точке Auth signupNewUser .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
электронная почта нить Адрес электронной почты, который должен создать пользователь.
пароль нить Пароль, который должен создать пользователь.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
Полезная нагрузка ответа
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase для вновь созданного пользователя.
электронная почта нить Электронная почта вновь созданного пользователя.
обновитьТокен нить Токен обновления Firebase Auth для вновь созданного пользователя.
истекает нить Количество секунд, в течение которых истекает срок действия токена идентификатора.
локальный идентификатор нить 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 . Ответ содержит токен идентификатора Firebase и токен обновления, связанные с новой учетной записью.

Пример ответа

{
  "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 к конечной точке verifyPassword .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
электронная почта нить Адрес электронной почты, с помощью которого пользователь входит в систему.
пароль нить Пароль для учетной записи.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
Полезная нагрузка ответа
Имя свойства Тип Описание
idToken нить Токен Firebase Auth ID для аутентифицированного пользователя.
электронная почта нить Электронная почта аутентифицированного пользователя.
обновитьТокен нить Токен обновления Firebase Auth для аутентифицированного пользователя.
истекает нить Количество секунд, в течение которых истекает срок действия токена идентификатора.
локальный идентификатор нить Uid аутентифицированного пользователя.
зарегистрированный логическое значение Является ли адрес электронной почты адресом существующей учетной записи.

Запрос образца

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 и токен обновления, связанный с существующей учетной записью электронной почты/пароля.

Пример ответа

{
  "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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
Полезная нагрузка ответа
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase для вновь созданного пользователя.
электронная почта нить Поскольку пользователь анонимен, это поле должно быть пустым.
обновитьТокен нить Токен обновления Firebase Auth для вновь созданного пользователя.
истекает нить Количество секунд, в течение которых истекает срок действия токена идентификатора.
локальный идентификатор нить Uid вновь созданного пользователя.

Запрос образца

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 к конечной точке verifyAssertion .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
запросUri нить URI, на который IDP перенаправляет пользователя обратно.
postBody нить Содержит учетные данные OAuth (токен идентификатора или токен доступа) и идентификатор поставщика, выдающего учетные данные.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
returnIdpCredential логическое значение Следует ли принудительно возвращать учетные данные OAuth при следующих ошибках: FEDERATED_USER_ID_ALREADY_LINKED и EMAIL_EXISTS.
Полезная нагрузка ответа
Имя свойства Тип Описание
федерированныйИд нить Уникальный идентификатор идентифицирует учетную запись IdP.
идентификатор поставщика нить Идентификатор связанного провайдера (например, «google.com» для провайдера Google).
локальный идентификатор нить Uid аутентифицированного пользователя.
электронная почтаПодтвержден логическое значение Подтвержден ли адрес электронной почты для входа.
электронная почта нить Электронная почта аккаунта.
оаутидтокен нить Токен идентификатора OIDC, если он доступен.
oauthAccessToken нить Токен доступа OAuth, если он доступен.
oauthTokenSecret нить Секрет токена OAuth 1.0, если он доступен.
rawUserInfo нить Строковый ответ JSON, содержащий все данные IdP, соответствующие предоставленным учетным данным OAuth.
имя нить Имя учетной записи.
фамилия нить Фамилия учетной записи.
полное имя нить Полное имя учетной записи.
отображаемое имя нить Отображаемое имя учетной записи.
фотоURL нить URL-адрес фотографии для аккаунта.
idToken нить Токен Firebase Auth ID для аутентифицированного пользователя.
обновитьТокен нить Токен обновления 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]","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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
идентификатор нить Адрес электронной почты пользователя
продолжитьUri нить URI, на который IDP перенаправляет пользователя обратно. В данном случае это просто текущий URL-адрес.
Полезная нагрузка ответа
Имя свойства Тип Описание
всепровайдеры Список строк Список провайдеров, с которыми пользователь ранее входил в систему.
зарегистрированный логическое значение Является ли электронное письмо адресом существующей учетной записи

Запрос образца

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 .

Метод: ПОСТ

Тип контента: приложение/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 к конечной точке Auth resetPassword .

Метод: ПОСТ

Тип контента: приложение/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 к конечной точке Auth resetPassword .

Метод: ПОСТ

Тип контента: приложение/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: учетная запись пользователя отключена администратором.

Изменить e-mail

Вы можете изменить адрес электронной почты пользователя, отправив HTTP-запрос POST к конечной точке Auth setAccountInfo .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Дополнительные заголовки
Имя свойства Описание
X-Firebase-Локаль Код языка, соответствующий языковому стандарту пользователя. При этом будет локализовано письмо об отзыве изменения электронной почты, отправленное пользователю.
Запросить полезную нагрузку тела
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase для пользователя.
электронная почта нить Новый адрес электронной почты пользователя.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления.
Полезная нагрузка ответа
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Адрес электронной почты пользователя.
парольХэш нить Хэш-версия пароля.
провайдерUserInfo Список объектов JSON Список всех связанных объектов поставщика, содержащих «providerId» и «federatedId».
idToken нить Новый токен идентификатора аутентификации Firebase для пользователя.
обновитьТокен нить Токен обновления аутентификации 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 и токен обновления, связанный с пользователем.

Пример ответа

{
  "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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase для пользователя.
пароль нить Новый пароль пользователя.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления.
Полезная нагрузка ответа
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Адрес электронной почты пользователя.
парольХэш нить Хэш-версия пароля.
провайдерUserInfo Список объектов JSON Список всех связанных объектов поставщика, содержащих «providerId» и «federatedId».
idToken нить Новый токен идентификатора аутентификации Firebase для пользователя.
обновитьТокен нить Токен обновления аутентификации 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 и токен обновления, связанный с пользователем.

Пример ответа

{
  "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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен идентификатора аутентификации Firebase для пользователя.
отображаемое имя нить Новое отображаемое имя пользователя.
фотоURL нить URL-адрес новой фотографии пользователя.
удалить атрибут Список строк Список атрибутов для удаления: «DISPLAY_NAME» или «PHOTO_URL». Это аннулирует эти значения.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления.
Полезная нагрузка ответа
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Адрес электронной почты пользователя.
отображаемое имя нить Новое отображаемое имя пользователя.
фотоURL нить URL-адрес новой фотографии пользователя.
парольХэш нить Хэш-версия пароля.
провайдерUserInfo Список объектов JSON Список всех связанных объектов поставщика, содержащих «providerId» и «federatedId».
idToken нить Новый токен идентификатора аутентификации Firebase для пользователя.
обновитьТокен нить Токен обновления аутентификации 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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен Firebase ID аккаунта.
Полезная нагрузка ответа
Имя свойства Тип Описание
пользователи Список объектов JSON Учетная запись, связанная с данным токеном Firebase ID. Проверьте ниже для более подробной информации.
Полезная нагрузка ответа (содержимое массива users )
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Электронная почта аккаунта.
электронная почтаПодтвержден логическое значение Был ли подтвержден адрес электронной почты учетной записи.
отображаемое имя нить Отображаемое имя учетной записи.
провайдерUserInfo Список объектов JSON Список всех связанных объектов поставщика, содержащих «providerId» и «federatedId».
фотоURL нить URL-адрес фотографии для аккаунта.
парольХэш нить Хэш-версия пароля.
парольОбновленоAt двойной Отметка времени (в миллисекундах) последнего изменения пароля учетной записи.
действительный с момента нить Временная метка в секундах, обозначающая границу, до которой токен Firebase ID считается отозванным.
неполноценный логическое значение Независимо от того, отключена ли учетная запись или нет.
последний вход в систему нить Временная метка в миллисекундах, с которой в последний раз осуществлялся вход в учетную запись.
создан в нить Временная метка в миллисекундах, в которой была создана учетная запись.
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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен Firebase ID учетной записи, с которой вы пытаетесь связать учетные данные.
электронная почта нить Электронная почта для привязки к аккаунту.
пароль нить Новый пароль учетной записи.
returnSecureToken нить Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
Полезная нагрузка ответа
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Электронная почта аккаунта.
отображаемое имя нить Отображаемое имя учетной записи.
фотоURL нить URL-адрес фотографии для аккаунта.
парольХэш нить Хэш-версия пароля.
провайдерUserInfo Список объектов JSON Список всех связанных объектов поставщика, содержащих «providerId» и «federatedId».
электронная почтаПодтвержден логическое значение Был ли подтвержден адрес электронной почты учетной записи.
idToken нить Новый токен идентификатора аутентификации Firebase для пользователя.
обновитьТокен нить Токен обновления аутентификации 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 с пользователем, отправив запрос HTTP POST к конечной точке verifyAssertion .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен Firebase ID учетной записи, с которой вы пытаетесь связать учетные данные.
запросUri нить URI, на который IDP перенаправляет пользователя обратно.
postBody нить Содержит учетные данные OAuth (токен идентификатора или токен доступа) и идентификатор поставщика, выдающего учетные данные.
returnSecureToken логическое значение Возвращать ли идентификатор и токен обновления. Всегда должно быть правдой.
returnIdpCredential логическое значение Следует ли принудительно возвращать учетные данные OAuth при следующих ошибках: FEDERATED_USER_ID_ALREADY_LINKED и EMAIL_EXISTS.
Полезная нагрузка ответа
Имя свойства Тип Описание
федерированныйИд нить Уникальный идентификатор идентифицирует учетную запись IdP.
идентификатор поставщика нить Идентификатор связанного провайдера (например, «google.com» для провайдера Google).
локальный идентификатор нить Uid аутентифицированного пользователя.
электронная почтаПодтвержден логическое значение Подтвержден ли адрес электронной почты для входа.
электронная почта нить Электронная почта аккаунта.
оаутидтокен нить Токен идентификатора OIDC, если он доступен.
oauthAccessToken нить Токен доступа OAuth, если он доступен.
oauthTokenSecret нить Секрет токена OAuth 1.0, если он доступен.
rawUserInfo нить Строковый ответ JSON, содержащий все данные IdP, соответствующие предоставленным учетным данным OAuth.
имя нить Имя учетной записи.
фамилия нить Фамилия учетной записи.
полное имя нить Полное имя учетной записи.
отображаемое имя нить Отображаемое имя учетной записи.
фотоURL нить URL-адрес фотографии для аккаунта.
idToken нить Токен Firebase Auth ID для аутентифицированного пользователя.
обновитьТокен нить Токен обновления 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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен Firebase ID аккаунта.
удалитьпровайдер Список строк Список идентификаторов поставщиков, от которых требуется отменить связь, например: «google.com», «пароль» и т. д.
Полезная нагрузка ответа
Имя свойства Тип Описание
локальный идентификатор нить Uid текущего пользователя.
электронная почта нить Электронная почта аккаунта.
отображаемое имя нить Отображаемое имя учетной записи.
фотоURL нить URL-адрес фотографии для аккаунта.
парольХэш нить Хэш-версия пароля.
провайдерUserInfo Список объектов 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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Дополнительные заголовки
Имя свойства Описание
X-Firebase-Локаль Код языка, соответствующий языковому стандарту пользователя. При этом будет локализовано подтверждение электронной почты, отправленное пользователю.
Запросить полезную нагрузку тела
Имя свойства Тип Описание
тип запроса нить Тип кода подтверждения для отправки. Всегда должно быть «VERIFY_EMAIL».
idToken нить Токен Firebase ID пользователя, которого необходимо проверить.
Полезная нагрузка ответа
Имя свойства Тип Описание
электронная почта нить Электронная почта аккаунта.

Запрос образца

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 .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
oobCode нить Код действия отправлен на электронную почту пользователя для проверки электронной почты.
Полезная нагрузка ответа
Имя свойства Тип Описание
электронная почта нить Электронная почта аккаунта.
отображаемое имя нить Отображаемое имя учетной записи.
фотоURL нить URL-адрес фотографии для аккаунта.
парольХэш нить Хэш пароля.
провайдерUserInfo Список объектов 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 к конечной точке Auth deleteAccount .

Метод: ПОСТ

Тип контента: приложение/json

Конечная точка
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Полезная нагрузка тела запроса
Имя свойства Тип Описание
idToken нить Токен Firebase ID пользователя, которого нужно удалить.
Полезная нагрузка ответа
Имя свойства Тип Описание

Запрос образца

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 входит эмулятор аутентификации , который можно использовать для локального прототипирования и тестирования потоков аутентификации. Эмулятор предоставляет следующие конечные точки REST.

Очистить учетные записи пользователей

Удалить все учетные записи в указанном проекте, независимо от их состояния.

Метод: УДАЛИТЬ

Конечная точка

Обратите внимание, что 9099 — это порт по умолчанию для эмулятора аутентификации. Проверьте вывод терминала на предмет фактического используемого порта.

http://localhost:9099/emulator/v1/projects/{project-id}/accounts

Получить конфигурацию эмулятора

Получите конфигурацию эмулятора для указанного проекта.

Метод: ПОЛУЧИТЬ

Конечная точка

Обратите внимание, что 9099 — это порт по умолчанию для эмулятора аутентификации. Проверьте вывод терминала на предмет фактического используемого порта.

http://localhost:9099/emulator/v1/projects/{project-id}/config
Полезная нагрузка ответа
Имя свойства Тип Описание
войти объект Объект конфигурации SignIn, содержащий один ключ, allowDuplicateEmails (логическое значение).

Исправление конфигурации эмулятора

Обновите конфигурацию эмулятора для указанного проекта.

Метод: ПАТЧ

Конечная точка

Обратите внимание, что 9099 — это порт по умолчанию для эмулятора аутентификации. Проверьте вывод терминала на предмет фактического используемого порта.

Тип контента: приложение/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
Полезная нагрузка тела запроса
Имя свойства Тип Описание
войти объект Требуемый объект конфигурации входа в систему с одним ключом, allowDuplicateEmails (логическое значение).
Полезная нагрузка ответа
Имя свойства Тип Описание
войти объект Объект конфигурации входа после запроса с одним ключом, allowDuplicateEmails (логическое значение).

Получить коды внешней аутентификации

Если тестируемые вами потоки аутентификации обычно генерируют внеполосные коды (например, коды проверки электронной почты, коды сброса пароля), эмулятор хранит такие коды внутри себя до тех пор, пока они не будут использованы.

Метод: ПОЛУЧИТЬ

Конечная точка

Обратите внимание, что 9099 — это порт по умолчанию для эмулятора аутентификации. Проверьте вывод терминала на предмет фактического используемого порта.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
Полезная нагрузка ответа
Имя свойства Тип Описание
oobКоды множество Массив объектов, содержащий сведения обо всех ожидающих кодах подтверждения. Каждый объект содержит email (строка), oobCode (строка), oobLink (строка) и requestType (строка).

Получить коды подтверждения по SMS

Если вы тестируете потоки аутентификации по телефону/SMS, эмулятор сохраняет такие коды SMS внутри себя до тех пор, пока они не будут использованы.

Метод: ПОЛУЧИТЬ

Конечная точка

Обратите внимание, что 9099 — это порт по умолчанию для эмулятора аутентификации. Проверьте вывод терминала на предмет фактического используемого порта.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
Полезная нагрузка ответа
Имя свойства Тип Описание
Коды проверки множество Массив объектов, содержащий сведения обо всех ожидающих кодах проверки. Каждый объект содержит phoneNumber (строка) и sessionCode (строка).

Ошибка ответа

Формат ответа об ошибке

Каждый раз, когда с внутреннего сервера возвращается ошибка для любого из вышеперечисленных API, ответ будет иметь следующий формат.

Пример ответа

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalid",
        "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
      }
    ],
    "code": 400,
    "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
  }
}

Код ошибки получается из поля сообщения. Все приведенные выше коды ошибок относятся к содержимому поля сообщения.