Method: accounts.createAuthUri

Se um identificador de e-mail for especificado, ele vai verificar e retornar se alguma conta de usuário está registrada com o e-mail. Se houver uma conta registrada, extrai todos os provedores associados ao e-mail da conta.

Se o ID do provedor de um provedor de identidade (IdP) for especificado, crie um URI de autorização para o IdP. O usuário pode ser direcionado a esse URI para fazer login com o IdP.

Uma chave de API é necessária na solicitação para identificar o projeto do Google Cloud.

Solicitação HTTP

POST https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri

O URL usa a sintaxe de transcodificação gRPC.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "identifier": string,
  "continueUri": string,
  "openidRealm": string,
  "providerId": string,
  "oauthConsumerKey": string,
  "oauthScope": string,
  "context": string,
  "otaApp": string,
  "appId": string,
  "hostedDomain": string,
  "sessionId": string,
  "authFlowType": string,
  "customParameter": {
    string: string,
    ...
  },
  "tenantId": string
}
Campos
identifier

string

O identificador de e-mail da conta de usuário para buscar os provedores associados. Pelo menos um dos campos identifier e providerId precisa ser definido.

O endereço de e-mail precisa ter menos de 256 caracteres e estar no formato name@domain.tld. O endereço de e-mail também precisa corresponder à produção de addr-spec do RFC 822.

continueUri

string

Um URL válido para o IdP redirecionar o usuário. O URL não pode conter fragmentos ou o parâmetro de consulta state reservado.

openidRealm
(deprecated)

string

providerId

string

O ID do provedor do provedor de identidade com que o usuário vai fazer login. Esse é um ID de provedor ativado para login, que pode ser da lista de IdPs compatíveis padrão ou do formato oidc.* ou saml.*. Alguns exemplos são google.com, facebook.com, oidc.testapp e saml.testapp. Pelo menos um dos campos identifier e providerId precisa ser definido.

oauthConsumerKey
(deprecated)

string

oauthScope

string

Outros escopos do OAuth 2.0 separados por espaços que especificam o escopo da solicitação de autenticação com o IdP. Usado para provedores de identidade do OAuth 2.0.

Para o provedor do Google, o fluxo do código de autorização será usado se esse campo estiver definido.

context

string

Uma string opaca usada para manter informações contextuais entre a solicitação de autenticação e o callback do IdP.

otaApp
(deprecated)

string

appId
(deprecated)

string

hostedDomain

string

Usado para o provedor do Google. O domínio hospedado do G Suite do usuário para restringir o login a usuários nesse domínio.

sessionId

string

Um ID de sessão que pode ser verificado em accounts.signInWithIdp para evitar ataques de fixação de sessão. Se não estiver presente, uma string aleatória será gerada e retornada como o ID da sessão.

authFlowType

string

Usado para o provedor do Google. O tipo de fluxo de autenticação a ser usado. Se presente, deve ser CODE_FLOW para especificar o fluxo do código de autorização. Caso contrário, o fluxo padrão de ID Token será usado.

customParameter

map (key: string, value: string)

Outros parâmetros de consulta personalizados a serem adicionados ao URI de autorização. Os parâmetros a seguir são reservados e não podem ser adicionados: clientId, responseType, scope, redirectUri e state.

Para o provedor da Microsoft, o locatário do Azure AD para fazer login pode ser especificado no parâmetro personalizado tenant.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

tenantId

string

O ID do locatário do Identity Platform para criar um URI de autorização ou pesquisar um identificador de e-mail. Se não for definido, a operação será realizada na instância padrão do Identity Platform no projeto.

Corpo da resposta

Mensagem de resposta para accounts.createAuthUri.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "kind": string,
  "authUri": string,
  "allProviders": [
    string
  ],
  "registered": boolean,
  "providerId": string,
  "forExistingProvider": boolean,
  "captchaRequired": boolean,
  "sessionId": string,
  "signinMethods": [
    string
  ]
}
Campos
kind
(deprecated)

string

authUri

string

O URI de autorização para o provedor solicitado. Presente apenas quando um ID do provedor estiver definido na solicitação.

allProviders[]
(deprecated)

string

registered

boolean

Se o identificador de e-mail representa uma conta. Presente apenas quando um identificador de e-mail é definido na solicitação.

providerId

string

O ID do provedor da solicitação, se fornecido.

forExistingProvider

boolean

Se o usuário já fez login com o ID do provedor na solicitação. Presente apenas quando um identificador de e-mail registrado é definido na solicitação.

captchaRequired

boolean

Se um CAPTCHA é necessário porque o usuário fez muitas tentativas de login sem sucesso. Presente apenas quando um identificador de e-mail registrado é definido na solicitação.

sessionId

string

O ID da sessão da solicitação ou uma string aleatória gerada por accounts.createAuthUri, se ausente. Ele é usado para evitar ataques de fixação de sessão.

signinMethods[]

string

A lista de métodos de login que o usuário usou anteriormente. Cada elemento é password, emailLink ou o ID do provedor de um IdP. Presente apenas quando um identificador de e-mail registrado é definido na solicitação. Se a proteção contra enumeração de e-mails estiver ativada, esse método vai retornar uma lista vazia.

Escopos de autorização

Requer um dos seguintes escopos do OAuth:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

Para mais informações, consulte Authentication Overview.