Usar a API REST
Este documento mostra como realizar operações comuns do utilizador, como iniciar sessão e trabalhar com tokens, através da API REST do Identity Platform.
Antes de começar
Para usar a API REST, precisa de uma chave da API Identity Platform. Para obter uma chave:
Aceda à página Fornecedores de identidade na Google Cloud consola.
Aceda à página Fornecedores de identidadeClique em Detalhes da configuração da aplicação.
Copie o campo
apiKey.
Tenha em atenção que o HTTPS é obrigatório para todas as chamadas da API.
Chamar a API
Troque um token personalizado por um ID e um token de atualização
Pode trocar uma chave de autorização personalizada por uma chave de ID e uma chave de atualização emitindo um pedido HTTP
POST para o ponto final signInWithCustomToken.
Método: POST
Content-Type: application/json
Ponto finalhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| token | de string | Um token personalizado da Identity Platform a partir do qual criar um par de tokens de ID e de atualização. |
| returnSecureToken | booleano | Se deve ou não devolver um ID e um token de atualização. Deve ser sempre verdadeiro. |
| tenantId | de string | O ID do inquilino no qual o utilizador está a iniciar sessão. Usado apenas em multi-tenancy. Tem de corresponder ao tenant_id no token. |
| Propriedade | Nome | Descrição |
|---|---|---|
| alg | Algoritmo | Deve ser RS256. |
| iss | Emissor | O endereço de email da conta de serviço do seu projeto. |
| sub | Assunto | O endereço de email da conta de serviço do seu projeto. |
| aud | Público-alvo | https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit |
| iat | Hora de emissão | A hora atual, em segundos desde o início da época UNIX. |
| exp | Período de validade | A hora, em segundos desde o início da época UNIX, em que o token expira. Pode ser, no máximo, 3600 segundos depois da iat.
Nota: isto só controla a hora em que o próprio token personalizado expira. No entanto, depois de iniciar sessão num utilizador através de signInWithCustomToken(), a sessão do utilizador permanece iniciada no
dispositivo até que seja invalidada ou o utilizador termine sessão. |
| uid | ID do utilizador | O identificador único do utilizador, com um comprimento entre 1 e 36 carateres. |
| tenant_id | ID do inquilino | O identificador do inquilino no qual o utilizador está a iniciar sessão. |
| reivindicações (opcional) | Reivindicações personalizadas opcionais a incluir nas variáveis auth ou request.auth das regras de segurança. |
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| idToken | de string | Um token de ID da Identity Platform gerado a partir do token personalizado fornecido. |
| refreshToken | de string | Um token de atualização da Identity Platform gerado a partir do token personalizado fornecido. |
| expiresIn | de string | O número de segundos em que o token de ID expira. |
Pedido de amostra
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
Um pedido bem-sucedido é indicado por um código de estado HTTP 200 OK. A resposta contém o token de ID e o token de atualização da Identity Platform associados
ao token personalizado.
Exemplo de resposta
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de erro comuns
- INVALID_CUSTOM_TOKEN: o formato do token personalizado está incorreto ou o token é inválido por algum motivo (por exemplo, expirou, assinatura inválida, etc.)
- CREDENTIAL_MISMATCH: o token personalizado corresponde a um Google Cloud projeto diferente.
Troque um token de atualização por um token de ID
Pode atualizar um token de ID da Identity Platform emitindo um pedido HTTP
POST para o ponto final securetoken.googleapis.com.
Método: POST
Content-Type: application/x-www-form-urlencoded
Ponto finalhttps://securetoken.googleapis.com/v1/token?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| grant_type | de string | O tipo de autorização do token de atualização, sempre "refresh_token". |
| refresh_token | de string | Um token de atualização do Identity Platform. |
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| expires_in | de string | O número de segundos em que o token de ID expira. |
| token_type | de string | O tipo do token de atualização, sempre "Bearer". |
| refresh_token | de string | O token de atualização da Identity Platform fornecido no pedido ou um novo token de atualização. |
| id_token | de string | Um token de ID do Identity Platform. |
| user_id | de string | O UID correspondente ao token de ID fornecido. |
| project_id | de string | O seu Google Cloud ID do projeto. |
Pedido de amostra
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]'
Um pedido bem-sucedido é indicado por um código de estado HTTP 200 OK. A resposta contém o novo token de atualização e token de ID da Identity Platform.
Exemplo de resposta
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
Códigos de erro comuns
- TOKEN_EXPIRED: a credencial do utilizador já não é válida. O utilizador tem de iniciar sessão novamente.
- USER_DISABLED: a conta de utilizador foi desativada por um administrador.
- USER_NOT_FOUND: não foi encontrado o utilizador correspondente ao token de atualização. É provável que o utilizador tenha sido eliminado.
- A chave da API não é válida. Transmita uma chave da API válida. (chave da API inválida fornecida)
- INVALID_REFRESH_TOKEN: foi fornecido um token de atualização inválido.
- Payload JSON inválido recebido. Nome desconhecido "refresh_tokens": não é possível associar o parâmetro de consulta. Não foi possível encontrar o campo "refresh_tokens" na mensagem de pedido.
- INVALID_GRANT_TYPE: o tipo de autorização especificado é inválido.
- MISSING_REFRESH_TOKEN: nenhum token de atualização fornecido.
- PROJECT_NUMBER_MISMATCH: o número do projeto do token de atualização não corresponde ao da chave da API fornecida.
Inscreva-se com email / palavra-passe
Pode criar um novo utilizador com email e palavra-passe enviando um pedido HTTP
POST para o ponto final de autenticação signupNewUser.
Método: POST
Content-Type: application/json
Ponto finalhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| de string | O email do utilizador a criar. | |
| palavra-passe | de string | A palavra-passe que o utilizador vai criar. |
| returnSecureToken | booleano | Se deve ou não devolver um ID e um token de atualização. Deve ser sempre verdadeiro. |
| tenantId | de string | O ID do inquilino do utilizador a criar. Usado apenas em multi-tenancy. |
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| idToken | de string | Um token de ID da Identity Platform para o utilizador recém-criado. |
| de string | O email do utilizador recém-criado. | |
| refreshToken | de string | Um token de atualização da Identity Platform para o utilizador recém-criado. |
| expiresIn | de string | O número de segundos em que o token de ID expira. |
| localId | de string | O UID do utilizador recém-criado. |
Pedido de amostra
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}'
Um pedido bem-sucedido é indicado por um código de estado HTTP 200 OK. A resposta contém o token de ID e o token de atualização da Identity Platform associados
à nova conta.
Exemplo de resposta
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
Códigos de erro comuns
- EMAIL_EXISTS: o endereço de email já está a ser usado por outra conta.
- OPERATION_NOT_ALLOWED: O início de sessão com palavra-passe está desativado para este projeto.
- TOO_MANY_ATTEMPTS_TRY_LATER: Bloqueámos todos os pedidos deste dispositivo devido a atividade invulgar. Tente mais tarde.
Inicie sessão com email / palavra-passe
Pode iniciar sessão num utilizador com um email e uma palavra-passe emitindo um pedido HTTP
POST para o ponto final de autenticação verifyPassword.
Método: POST
Content-Type: application/json
Ponto finalhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| de string | O email com o qual o utilizador está a iniciar sessão. | |
| palavra-passe | de string | A palavra-passe da conta. |
| returnSecureToken | booleano | Se deve ou não devolver um ID e um token de atualização. Deve ser sempre verdadeiro. |
| tenantId | de string | O ID do inquilino no qual o utilizador está a iniciar sessão. Usado apenas em multi-tenancy. |
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| idToken | de string | Um token de ID da Identity Platform para o utilizador autenticado. |
| de string | O email do utilizador autenticado. | |
| refreshToken | de string | Um token de atualização da Identity Platform para o utilizador autenticado. |
| expiresIn | de string | O número de segundos em que o token de ID expira. |
| localId | de string | O UID do utilizador autenticado. |
| registada | booleano | Se o email é para uma conta existente. |
Pedido de amostra
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}'
Um pedido bem-sucedido é indicado por um código de estado HTTP 200 OK. A resposta contém o token de ID e o token de atualização do Identity Platform associados
à conta de email/palavra-passe existente.
Exemplo de resposta
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de erro comuns
- EMAIL_NOT_FOUND: não existe nenhum registo de utilizador correspondente a este identificador. O utilizador pode ter sido eliminado.
- INVALID_PASSWORD: a palavra-passe é inválida ou o utilizador não tem uma palavra-passe.
- USER_DISABLED: a conta de utilizador foi desativada por um administrador.
Inicie sessão anonimamente
Pode iniciar sessão num utilizador anonimamente emitindo um pedido HTTP
POST para o ponto final de autenticação signupNewUser.
Método: POST
Content-Type: application/json
Ponto finalhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| returnSecureToken | booleano | Se deve ou não devolver um ID e um token de atualização. Deve ser sempre verdadeiro. |
| tenantId | de string | O ID do inquilino no qual o utilizador está a iniciar sessão. Usado apenas em multi-tenancy. |
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| idToken | de string | Um token de ID da Identity Platform para o utilizador recém-criado. |
| de string | Uma vez que o utilizador é anónimo, este campo deve estar vazio. | |
| refreshToken | de string | Um token de atualização da Identity Platform para o utilizador recém-criado. |
| expiresIn | de string | O número de segundos em que o token de ID expira. |
| localId | de string | O UID do utilizador recém-criado. |
Pedido de amostra
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
Um pedido bem-sucedido é indicado por um código de estado HTTP 200 OK. A resposta contém o token de atualização e o token de ID da Identity Platform associados
ao utilizador anónimo.
Exemplo de resposta
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
Códigos de erro comuns
- OPERATION_NOT_ALLOWED: o início de sessão de utilizadores anónimos está desativado para este projeto.
Inicie sessão com a credencial do OAuth
Pode iniciar sessão num utilizador com uma credencial OAuth emitindo um pedido HTTP
POST para o ponto final verifyAssertion de autenticação.
Método: POST
Content-Type: application/json
Ponto finalhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
| Nome da propriedade | Tipo | Descrição |
|---|---|---|
| requestUri | de string | O URI para o qual o IdP redireciona o utilizador. |
| postBody | de string | Contém a credencial OAuth (um token de ID ou um token de acesso) e o ID do fornecedor que emite a credencial. |
| returnSecureToken | booleano | Se deve ou não devolver um ID e um token de atualização. Deve ser sempre verdadeiro. |
| returnIdpCredential | booleano | Se deve forçar a devolução da credencial do OAuth nos seguintes erros: FEDERATED_USER_ID_ALREADY_LINKED e EMAIL_EXISTS. |
| tenantId | de string | O ID do inquilino no qual o utilizador está a iniciar sessão. Usado apenas em multi-tenancy. |
| Nome da propriedade |
|---|