Esta referência descreve os métodos e atributos do cliente JavaScript que você vai usar para implementar o Login do Google nos seus aplicativos da Web.
Se você encontrar algum problema ao usar a biblioteca, informe-o no nosso repositório do GitHub. .
Configuração de autenticação
Carregue a biblioteca da plataforma de APIs do Google para criar o objeto gapi:
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Depois que a biblioteca da plataforma for carregada, carregue a biblioteca auth2:
function init() {
  gapi.load('auth2', function() {
    /* Ready. Make a call to gapi.auth2.init or some other API */
  });
}
gapi.auth2.init(params)
Inicializa o objeto GoogleAuth. É necessário chamar esse método antes de chamar
os métodos de gapi.auth2.GoogleAuth.
Ao inicializar o objeto GoogleAuth, configure-o com o ID do cliente OAuth 2.0 e as outras opções que queira especificar. Em seguida, se o
usuário já tiver feito login, o objeto GoogleAuth vai restaurar o estado de login
do usuário da sessão anterior.
| Argumentos | |
|---|---|
| params | Um objeto que contém pares de chave-valor dos dados de configuração do cliente. Consulte gapi.auth2.ClientConfigpara conferir as diferentes
      propriedades configuráveis. Exemplo:{
  client_id: 'CLIENT_ID.apps.googleusercontent.com'
} | 
| Retorna | |
|---|---|
| gapi.auth2.GoogleAuth | O objeto gapi.auth2.GoogleAuth. Use o método
    then() para receber uma promessa
    que é resolvida quando o objetogapi.auth2.GoogleAuthtermina
    a inicialização. | 
GoogleAuth.then(onInit, onError)
Chama a função onInit quando o objeto GoogleAuth é totalmente
inicializado. Se um erro for gerado durante a inicialização (isso pode acontecer em navegadores antigos
sem suporte), a função onError será chamada.
| Argumentos | |
|---|---|
| onInit | A função chamada com o objeto GoogleAuthquando ele é totalmente
      inicializado. | 
| onError | A função chamada com um objeto que contém uma propriedade error,
      seGoogleAuthnão foi inicializado. | 
| Retorna | |
|---|---|
| Promise | Uma Promiseque é atendida quando a função onInit
    é concluída ou rejeitada se um erro de inicialização for gerado. Ele é resolvido com o
    valor retornado da função onInit, se houver. | 
Códigos de erro
- idpiframe_initialization_failed
- 
    Falha ao inicializar um iframe necessário do Google, por exemplo, devido a um ambiente
    sem suporte. Uma propriedade detailsvai fornecer mais informações sobre o erro gerado.
gapi.auth2.ClientConfig
Interface que representa os diferentes parâmetros de configuração do
método gapi.auth2.init.
| Parâmetros | ||
|---|---|---|
| client_id | string | Obrigatório. O ID do cliente do app, encontrado e criado no Console de APIs do Google. | 
| cookie_policy | string | Os domínios para os quais os cookies de login serão criados. Um URI, single_host_originounone. O padrão ésingle_host_originse não for especificado. | 
| scope | string | Os escopos a serem solicitados, como uma string delimitada por espaços. Opcional se fetch_basic_profilenão estiver definido como falso. | 
| fetch_basic_profile | boolean | Buscar as informações básicas de perfil dos usuários quando eles fizerem login. Adiciona "profile", "email" e "openid" aos escopos solicitados. Verdadeiro se não for especificado. | 
| hosted_domain | string | O domínio do G Suite ao qual os usuários precisam pertencer para fazer login. Isso
    pode ser modificado pelos clientes. Portanto, verifique a
    propriedade do domínio hospedado do usuário retornado. Use
    GoogleUser.getHostedDomain() no
    cliente e a declaração hdno token de ID no
    servidor para verificar se o domínio é o esperado. | 
| use_fedcm | boolean | Opcional, o padrão é True. Ative ou desative o uso de
    APIs FedCM do navegador durante o login. | 
| ux_mode | string | O modo de UX a ser usado para o fluxo de login. Por padrão, ele vai abrir o fluxo de consentimento
      em um pop-up. Os valores válidos são: popuperedirect. | 
| redirect_uri | string | Se você usar ux_mode='redirect', esse parâmetro vai permitir que você substitua oredirect_uripadrão que será usado no final do fluxo de consentimento. Oredirect_uripadrão é o URL atual sem parâmetros de consulta e fragmento
      de hash. | 
| enable_granular_consent | boolean | Opcional. Se é necessário ativar
    permissões
    granulares. Se definido como false, as permissões mais granulares da
    Conta do Google serão desativadas para IDs de cliente OAuth criados antes de
    2019.  Não há efeito para IDs de cliente OAuth criados em 2019 ou depois, já que
    permissões mais granulares estão sempre ativadas para eles. | 
| plugin_name | string | Opcional. Aplica-se apenas a IDs de cliente criados antes de 3 de março de 2025.
      Caso contrário, não haverá efeito.
      Permite que os apps da Web continuem usando a Biblioteca de Plataforma do Google.
      Por padrão, os IDs de cliente recém-criados não podem usar a biblioteca
      da plataforma e precisam usar a biblioteca mais recente dos Serviços de identidade do Google. Você pode escolher qualquer valor. Um nome descritivo, como o nome do produto ou do plug-in, é recomendado para identificação. Por exemplo: plugin_name: 'YOUR_STRING_HERE' | 
Autenticação
GoogleAuth é uma classe Singleton que fornece métodos para permitir que o usuário
faça login com uma Conta do Google, receba o status de login atual do usuário, receba
dados específicos do perfil do Google do usuário, solicite escopos adicionais e
faça logout da conta atual.
gapi.auth2.getAuthInstance()
Retorna o objeto GoogleAuth. É necessário inicializar o objeto GoogleAuth
com gapi.auth2.init() antes de chamar esse método.
| Retorna | |
|---|---|
| gapi.auth2.GoogleAuth | O objeto gapi.auth2.GoogleAuth. Use esse objeto para chamar
    os métodos degapi.auth2.GoogleAuth. | 
GoogleAuth.isSignedIn.get()
Retorna se o usuário atual fez login.
| Retorna | |
|---|---|
| Booleano | truese o usuário estiver conectado oufalsese o
      usuário estiver desconectado ou se o objetoGoogleAuthnão estiver
      inicializado. | 
GoogleAuth.isSignedIn.listen(listener)
Detecte mudanças no estado de login do usuário atual.
| Argumentos | |
|---|---|
| listener | Uma função que recebe um valor booleano. listen()transmitetruepara essa função quando o usuário faz login efalsequando o usuário sai. | 
GoogleAuth.signIn()
Faz o login do usuário com as opções especificadas para gapi.auth2.init().
| Retorna | |
|---|---|
| Promise | Uma Promiseque é atendida com a instânciaGoogleUserquando o
    usuário autentica e concede os escopos solicitados ou é rejeitada com um objeto
    contendo uma propriedadeerrorse ocorrer um erro. Consulte a próxima seção para ver os códigos de erro. | 
Códigos de erro
Veja GoogleAuth.signIn(options).
GoogleAuth.signIn(options)
Faz o login do usuário usando as opções especificadas.
| Argumentos | |
|---|---|
| options | Possibilidades: 
 | 
| Retorna | |
|---|---|
| Promise | Um Promiseque é atendido com a instânciaGoogleUserquando o
    usuário autentica e concede os escopos solicitados ou é rejeitado com um objeto
    contendo uma propriedadeerrorse um erro ocorreu (consulte abaixo os códigos de erro). | 
Códigos de erro
- popup_closed_by_user
- O usuário fechou o pop-up antes de concluir o fluxo de login.
- access_denied
- O usuário negou a permissão para os escopos necessários.
- immediate_failed
- 
    Nenhum usuário pode ser selecionado automaticamente sem solicitar o fluxo de consentimento. Erro gerado ao usar signIncom a opçãoprompt: 'none'. Essa opção não precisa ser usada, porquegapi.auth2.initfaz o login automático do usuário se ele já tiver feito login durante uma sessão anterior.
gapi.auth2.SignInOptions
Interface que representa os diferentes parâmetros de configuração do
método GoogleAuth.signIn(options).
| Parâmetros | ||
|---|---|---|
| prompt | string | Força um modo específico para o fluxo de consentimento. Opcional. Os valores possíveis são: 
 | 
| scope | string | Os escopos a serem solicitados, como uma string delimitada por espaços, além dos escopos definidos nos
      parâmetros gapi.auth2.init. Opcional sefetch_basic_profilenão for definido
      como falso. | 
| ux_mode | string | O modo de UX a ser usado para o fluxo de login. Por padrão, ele vai abrir o fluxo de consentimento
      em um pop-up. Os valores válidos são: popuperedirect. | 
| redirect_uri | string | Se você usar ux_mode='redirect', esse parâmetro vai permitir que você substitua
      oredirect_uripadrão que será usado no final do fluxo
      de consentimento. Oredirect_uripadrão é o URL atual sem parâmetros de consulta e fragmento de hash. | 
GoogleAuth.signOut()
Sai da conta atual do aplicativo.
| Retorna | |
|---|---|
| Promise | Um Promiseque é cumprido quando o usuário é desconectado. | 
GoogleAuth.disconnect()
Revoga todos os escopos concedidos pelo usuário.
GoogleAuth.grantOfflineAccess(options)
Receber permissão do usuário para acessar os escopos especificados off-line.
| Argumentos | |
|---|---|
| options | Um objeto gapi.auth2.OfflineAccessOptionsque contém pares de chave-valor de parâmetros. Exemplo:{
  scope: 'profile email'
} | 
| Retorna | |
|---|---|
| Promise | Um Promiseque é atendido quando o usuário concede os
    escopos solicitados, transmitindo um objeto que contém o código de autorização para
    o gerenciador de atendimento doPromise.
    Exemplo:auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); | 
Códigos de erro
- popup_closed_by_user
- O usuário fechou o pop-up antes de concluir o fluxo de consentimento.
- access_denied
- O usuário negou a permissão para os escopos necessários.
- immediate_failed
- 
    Nenhum usuário pode ser selecionado automaticamente sem solicitar o fluxo de consentimento. Erro gerado ao usar signIncom a opçãoprompt: 'none'. Essa opção não precisa ser usada, porquegapi.auth2.initfaz o login automático do usuário se ele já tiver feito login durante uma sessão anterior.
gapi.auth2.OfflineAccessOptions
Interface que representa os diferentes parâmetros de configuração do
método 
GoogleAuth.grantOfflineAccess(options).
| Parâmetros | ||
|---|---|---|
| prompt | string | Força um modo específico para o fluxo de consentimento. Opcional. Os valores possíveis são: 
 | 
| scope | string | Os escopos a serem solicitados, como uma string delimitada por espaços, além dos escopos definidos nos
      parâmetros gapi.auth2.init. Opcional sefetch_basic_profilenão for definido
      como falso. | 
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
Anexa o fluxo de login ao gerenciador de cliques do contêiner especificado.
| Argumentos | |
|---|---|
| container | O ID ou uma referência ao elemento divao qual anexar o manipulador de cliques. | 
| options | Um objeto que contém pares de chave-valor de parâmetros. Consulte GoogleAuth.signIn(). | 
| onsuccess | A função a ser chamada após o término do login. | 
| onfailure | A função a ser chamada se o login falhar. | 
Usuários
Um objeto GoogleUser representa uma conta de usuário. Os objetos GoogleUser são
normalmente obtidos chamando
GoogleAuth.currentUser.get().
GoogleAuth.currentUser.get()
Retorna um objeto GoogleUser
que representa o usuário atual. Em uma instância GoogleAuth recém-inicializada, o usuário atual não foi definido. Use o
método currentUser.listen() ou o GoogleAuth.then()
para receber uma instância GoogleAuth inicializada.
| Retorna | |
|---|---|
| GoogleUser | O usuário atual | 
GoogleAuth.currentUser.listen(listener)
Detecte mudanças no currentUser.
| Argumentos | |
|---|---|
| listener | Uma função que usa um parâmetro GoogleUser.listentransmite a essa função uma instância deGoogleUserem cada mudança que modificacurrentUser. | 
GoogleUser.getId()
Receba a string de ID exclusiva do usuário.
| Retorna | |
|---|---|
| String | O ID exclusivo do usuário | 
GoogleUser.isSignedIn()
Retorna verdadeiro se o usuário estiver conectado.
| Retorna | |
|---|---|
| Booleano | Verdadeiro se o usuário fez login | 
GoogleUser.getHostedDomain()
Receber o domínio do G Suite do usuário, se ele tiver feito login com uma conta do G Suite.
| Retorna | |
|---|---|
| String | O domínio do G Suite do usuário | 
GoogleUser.getGrantedScopes()
Receba os escopos concedidos pelo usuário como uma string delimitada por espaços.
| Retorna | |
|---|---|
| String | Os escopos concedidos pelo usuário | 
GoogleUser.getBasicProfile()
Receber as informações básicas de perfil do usuário.
| Retorna | |
|---|---|
| gapi.auth2.BasicProfile | É possível recuperar as propriedades de gapi.auth2.BasicProfilecom os seguintes métodos:
 | 
GoogleUser.getAuthResponse(includeAuthorizationData)
Receba o objeto de resposta da sessão de autenticação do usuário.
| Argumentos | |
|---|---|
| includeAuthorizationData | Opcional:um booleano que especifica se sempre vai retornar um token de acesso e
      escopos. Por padrão, o token de acesso e os escopos solicitados não são retornados quando fetch_basic_profileé verdadeiro (o valor padrão) e nenhum escopo adicional é
      solicitado. | 
| Retorna | |
|---|---|
| gapi.auth2.AuthResponse | Um objeto gapi.auth2.AuthResponse. | 
GoogleUser.reloadAuthResponse()
Força uma atualização do token de acesso e retorna uma promessa para a nova AuthResponse.
| Retorna | |
|---|---|
| Promise | Um Promiseque é preenchido com ogapi.auth2.AuthResponserecarregado
      quando o token OAuth é recarregado. | 
gapi.auth2.AuthResponse
  A resposta retornada ao chamar os métodos
  GoogleUser.getAuthResponse(includeAuthorizationData)
  ou
  GoogleUser.reloadAuthResponse().
| Propriedades | ||
|---|---|---|
| access_token | string | O token de acesso foi concedido. | 
| id_token | string | O token de ID concedido. | 
| scope | string | Os escopos concedidos no token de acesso. | 
| expires_in | number | O número de segundos até o token de acesso expirar. | 
| first_issued_at | number | O carimbo de data/hora em que o usuário concedeu os escopos solicitados pela primeira vez. | 
| expires_at | number | O carimbo de data/hora em que o token de acesso vai expirar. | 
GoogleUser.hasGrantedScopes(scopes)
Retorna verdadeiro se o usuário concedeu os escopos especificados.
| Argumentos | |
|---|---|
| scopes | Uma string de escopos delimitada por espaços. | 
| Retorna | |
|---|---|
| Booleano | Verdadeiro se os escopos foram concedidos | 
GoogleUser.grant(options)
Solicite outros escopos ao usuário.
Consulte GoogleAuth.signIn() para conferir a
lista de parâmetros e o código de erro.
GoogleUser.grantOfflineAccess(options)
Receber permissão do usuário para acessar os escopos especificados off-line.
| Argumentos | |
|---|---|
| options | Um objeto gapi.auth2.OfflineAccessOptionsque contém pares de chave-valor de parâmetros. Exemplo:{
  scope: 'profile email'
} | 
GoogleUser.disconnect()
Revoga todos os escopos que o usuário concedeu para o aplicativo.
Elementos da interface
gapi.signin2.render(id, options)
Renderiza um botão de login no elemento com o ID fornecido, usando as configurações especificadas pelo objeto options.
| Argumentos | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id | O ID do elemento em que o botão de login será renderizado. | ||||||||||||||||
| options | Um objeto que contém as configurações a serem usadas para renderizar o botão. Exemplo: {
  scope: 'email',
  width: 200,
  height: 50,
  longtitle: true,
  theme: 'dark',
  onsuccess: handleSuccess,
  onfailure: handleFailure
}
 | ||||||||||||||||
Avançado
gapi.auth2.authorize(params, callback)
Realiza uma autorização única do OAuth 2.0. Dependendo dos parâmetros usados, isso vai abrir um pop-up para o fluxo de login do Google ou tentar carregar a resposta solicitada silenciosamente, sem a interação do usuário.
Alguns casos de uso em que esse método é útil incluem:
- Seu aplicativo só precisa solicitar um endpoint da API do Google uma vez, por exemplo, para carregar os vídeos favoritos do YouTube do usuário na primeira vez que ele faz login.
- O aplicativo tem a própria infraestrutura de gerenciamento de sessões e só precisa do token de ID uma vez para identificar o usuário no back-end.
- Vários IDs de cliente são usados na mesma página.
| Argumentos | |
|---|---|
| params | Um objeto que contém pares de chave-valor de dados de configuração. Consulte gapi.auth2.AuthorizeConfigpara conferir as
      diferentes propriedades configuráveis. Exemplo:{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } | 
| callback | Uma função chamada com um
      objeto gapi.auth2.AuthorizeResponsedepois que a solicitação é concluída (com sucesso ou com falha). | 
Exemplo
gapi.auth2.authorize({
  client_id: 'CLIENT_ID.apps.googleusercontent.com',
  scope: 'email profile openid',
  response_type: 'id_token permission'
}, function(response) {
  if (response.error) {
    // An error happened!
    return;
  }
  // The user authorized the application for the scopes requested.
  var accessToken = response.access_token;
  var idToken = response.id_token;
  // You can also now use gapi.client to perform authenticated requests.
});
Códigos de erro
- idpiframe_initialization_failed
- 
    Falha ao inicializar um iframe necessário do Google, por exemplo, devido a um ambiente
    sem suporte. Uma propriedade detailsvai fornecer mais informações sobre o erro gerado.
- popup_closed_by_user
- O usuário fechou o pop-up antes de concluir o fluxo de login.
- access_denied
- O usuário negou a permissão para os escopos necessários.
- immediate_failed
- 
    Nenhum usuário pode ser selecionado automaticamente sem solicitar o fluxo de consentimento. Erro gerado ao usar signIncom a opçãoprompt: 'none'.
gapi.auth2.AuthorizeConfig
Interface que representa os diferentes parâmetros de configuração do
método gapi.auth2.authorize.
| Propriedades | ||
|---|---|---|
| client_id | string | Obrigatório. O ID do cliente do app, encontrado e criado no Console de APIs do Google. | 
| scope | string | Obrigatório. Os escopos a serem solicitados, como uma string delimitada por espaços. | 
| response_type | string | Uma lista de tipos de resposta delimitados por espaços. O valor padrão é 'permission'. Os valores possíveis são:
 | 
| prompt | string | Força um modo específico para o fluxo de consentimento. Os valores possíveis são: 
 | 
| cookie_policy | string | Os domínios para os quais os cookies de login serão criados. Um URI, single_host_originounone. O padrão ésingle_host_originse não for especificado. | 
| hosted_domain | string | O domínio do G Suite ao qual os usuários precisam pertencer para fazer login. Isso pode ser modificado por clientes. Portanto, verifique a propriedade do domínio hospedado do usuário retornado. | 
| login_hint | string | O e-mail ou ID do usuário que será pré-selecionado no fluxo de login. Isso pode ser
      modificado pelo usuário, a menos que prompt: "none"seja usado. | 
| include_granted_scopes | boolean | Define se um token de acesso vai ser solicitado com todos os escopos concedidos anteriormente pelo usuário
      ao app ou apenas os escopos solicitados na chamada atual. O valor padrão é true. | 
| enable_granular_consent | boolean | Opcional. Se é necessário ativar
      permissões
      granulares. Se definido como false, as permissões mais granulares da Conta
      do Google serão desativadas para IDs de cliente OAuth criados antes de
      2019. Não afeta os IDs de cliente OAuth criados em 2019 ou depois, já que
      permissões mais granulares estão sempre ativadas para eles. | 
| plugin_name | string | Opcional. Aplica-se apenas a IDs de cliente criados antes de 3 de março de 2025.
      Caso contrário, não haverá efeito.
      Permite que os apps da Web continuem usando a Biblioteca de Plataforma do Google.
      Por padrão, os IDs de cliente recém-criados não podem usar a biblioteca
      da plataforma e precisam usar a biblioteca mais recente dos Serviços de identidade do Google. Você pode escolher qualquer valor. Um nome descritivo, como o nome do produto ou do plug-in, é recomendado para identificação. Por exemplo: plugin_name: 'YOUR_STRING_HERE' | 
gapi.auth2.AuthorizeResponse
A resposta retornada ao callback do
método gapi.auth2.authorize.
| Propriedades | ||
|---|---|---|
| access_token | string | O token de acesso foi concedido. Presente apenas se permissionoutokenfor
      especificado noresponse_type. | 
| id_token | string | O token de ID concedido. Presente apenas se id_tokenfoi especificado noresponse_type. | 
| code | string | O código de autorização foi concedido. Presente apenas se codefoi especificado noresponse_type. | 
| scope | string | Os escopos concedidos no token de acesso. Presente apenas se permissionoutokenfor especificado noresponse_type. | 
| expires_in | number | O número de segundos até o token de acesso expirar. Presente apenas se permissionoutokenfor especificado noresponse_type. | 
| first_issued_at | number | O carimbo de data/hora em que o usuário concedeu os escopos solicitados pela primeira vez. Presente apenas se permissionoutokentiver sido especificado noresponse_type. | 
| expires_at | number | O carimbo de data/hora em que o token de acesso vai expirar. Presente apenas se permissionoutokenfor especificado noresponse_type. | 
| error | string | Quando a solicitação falha, ela contém o código de erro. | 
| error_subtype | string | Quando a solicitação falha, ela pode conter informações adicionais sobre o código de erro também retornado. |