Biblioteca JavaScript de autorização de terceiros do Google para sites - Referência da API

Nesta referência, descrevemos a API JavaScript Library do Google 3P, que você pode usar para carregar códigos de autorização ou tokens de acesso do Google.

Método: google.accounts.oauth2.initCodeClient

O método initCodeClient inicializa e retorna um cliente de código com as configurações no parâmetro.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Tipo de dados: CodeClientConfig

A tabela a seguir lista as propriedades do tipo de dados CodeClientConfig.

Propriedades
client_id Obrigatório. O ID do cliente para seu aplicativo. É possível encontrar esse valor no Console de APIs.
scope Obrigatório. A lista de escopos delimitada por espaços que identificam os recursos que seu aplicativo pode acessar em nome do usuário. Esses valores informam a tela de consentimento que o Google mostra ao usuário.
include_granted_scopes Opcional. O padrão é true. Permite que os aplicativos usem a autorização incremental para solicitar acesso a escopos adicionais no contexto. Se você definir o valor desse parâmetro como false e a solicitação de autorização for concedida, o novo token de acesso só vai cobrir os escopos aos quais o scope solicitou neste CodeClientConfig.
redirect_uri Obrigatório para UX de redirecionamento. Determina para onde o servidor de API redireciona o usuário após o usuário concluir o fluxo de autorização. O valor deve corresponder exatamente a um dos URIs de redirecionamento autorizados para o cliente OAuth 2.0, que você configurou no Console de APIs, e deve estar de acordo com nossas regras de validação do URI de redirecionamento. A propriedade será ignorada pela UX do pop-up.
callback Obrigatório para UX pop-up. A função JavaScript que lida com a resposta do código retornado. A propriedade será ignorada pela UX de redirecionamento.
state Opcional. Recomendado para UX de redirecionamento. Especifica qualquer valor de string que o aplicativo usa para manter o estado entre a solicitação de autorização e a resposta do servidor de autorização.
enable_granular_consent Opcional. O padrão é true. Se definido como false, permissões mais granulares da Conta do Google serão desativadas para IDs de cliente OAuth criados antes de 2019. Se enable_granular_consent e enable_serial_consent estiverem definidos, somente o valor enable_granular_consent terá efeito, e o valor enable_serial_consent será ignorado.

Nenhum efeito para IDs do cliente OAuth mais recentes, já que permissões mais granulares estão sempre ativadas para eles.
enable_serial_consent Obsoleto. Use enable_granular_consent Isso tem o mesmo efeito que enable_granular_consent. Aplicativos já existentes que usam enable_serial_consent podem continuar a fazer isso, mas é recomendável atualizar seu código para usar enable_granular_consent na próxima atualização do aplicativo.
login_hint Opcional. Se o aplicativo souber qual usuário deve autorizar a solicitação, ele poderá usar essa propriedade para fornecer uma dica de login ao Google. Quando bem-sucedida, a seleção de conta é ignorada. O valor do campo sub do endereço de e-mail ou do token de ID do usuário de destino. Para mais informações, consulte o campo login_hint na documentação do OpenID Connect.
hd Opcional. Caso seu aplicativo saiba o domínio do Workspace de que o usuário pertence, use isso para dar uma dica ao Google. Quando bem-sucedido, as contas de usuário são limitadas ou pré-selecionadas para o domínio fornecido. Para mais informações, consulte o campo hd na documentação do OpenID Connect.
ux_mode Opcional. O modo UX a ser usado no fluxo de autorização. Por padrão, o fluxo de consentimento é aberto em um pop-up. Os valores válidos são: popup e redirect.
select_account Opcional, o padrão é false. Valor booleano para solicitar que o usuário selecione uma conta.
error_callback Opcional. A função JavaScript que processa alguns erros não OAuth, como falha ao abrir a janela pop-up ou ser fechada antes que uma resposta OAuth seja retornada.

O campo "type" do parâmetro de entrada informa o motivo detalhado.
  • popup_failed_to_open Falha ao abrir a janela pop-up.
  • popup_closed: a janela pop-up é fechada antes que uma resposta do OAuth seja retornada.
  • unknown Marcador de posição para outros erros.

Tipo de dados: CodeClient

A classe tem apenas um método público requestCode, que inicia o fluxo de UX do código do OAuth 2.0.

interface CodeClient {
  requestCode(): void;
}

Tipo de dados: CodeResponse

Um objeto JavaScript CodeResponse vai ser transmitido ao método callback na UX pop-up. Na UX de redirecionamento, o CodeResponse vai ser transmitido como parâmetros de URL.

A tabela a seguir lista as propriedades do tipo de dados CodeResponse.

Propriedades
code O código de autorização de uma resposta de token bem-sucedida.
scope Uma lista de escopos delimitados por espaço, aprovados pelo usuário.
state O valor da string que seu aplicativo usa para manter o estado entre a solicitação de autorização e a resposta.
error Um único código de erro ASCII.
error_description Texto ASCII legível que fornece informações adicionais, usadas para ajudar o desenvolvedor do cliente a entender o erro que ocorreu.
error_uri Um URI que identifica uma página da Web legível com informações sobre o erro e é usado para fornecer ao desenvolvedor do cliente mais informações.

Método: google.accounts.oauth2.initTokenClient

O método initTokenClient inicializa e retorna um cliente de token com as configurações no parâmetro.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Tipo de dados: TokenClientConfig

A tabela a seguir lista as propriedades do tipo de dados TokenClientConfig.

Propriedades
client_id Obrigatório. O ID do cliente para seu aplicativo. É possível encontrar esse valor no Console de APIs.
callback Obrigatório. A função JavaScript que lida com a resposta do token retornado.
scope Obrigatório. A lista de escopos delimitada por espaços que identificam os recursos que seu aplicativo pode acessar em nome do usuário. Esses valores informam a tela de consentimento que o Google mostra ao usuário.
include_granted_scopes Opcional. O padrão é true. Permite que os aplicativos usem a autorização incremental para solicitar acesso a escopos adicionais no contexto. Se você definir o valor desse parâmetro como false e a solicitação de autorização for concedida, o novo token de acesso só vai cobrir os escopos aos quais o scope solicitou neste TokenClientConfig.
prompt Opcional, o padrão é 'select_account'. Uma lista de solicitações delimitada por espaço e que diferencia maiúsculas de minúsculas para apresentar ao usuário. Os valores possíveis são:
  • string vazia O usuário receberá uma solicitação somente na primeira vez que seu app solicitar acesso. Não pode ser especificado com outros valores.
  • 'none': não mostra telas de autenticação ou consentimento. Não pode ser especificado com outros valores.
  • 'consent': solicite o consentimento do usuário.
  • 'select_account': solicita que o usuário selecione uma conta.
enable_granular_consent Opcional. O padrão é true. Se definido como false, permissões mais granulares da Conta do Google serão desativadas para IDs de cliente OAuth criados antes de 2019. Se enable_granular_consent e enable_serial_consent estiverem definidos, somente o valor enable_granular_consent terá efeito, e o valor enable_serial_consent será ignorado.

Nenhum efeito para IDs do cliente OAuth mais recentes, já que permissões mais granulares estão sempre ativadas para eles.
enable_serial_consent Obsoleto. Use enable_granular_consent Isso tem o mesmo efeito que enable_granular_consent. Aplicativos já existentes que usam enable_serial_consent podem continuar a fazer isso, mas é recomendável atualizar seu código para usar enable_granular_consent na próxima atualização do aplicativo.
login_hint Opcional. Se o aplicativo souber qual usuário deve autorizar a solicitação, ele poderá usar essa propriedade para fornecer uma dica de login ao Google. Quando bem-sucedida, a seleção de conta é ignorada. O valor do campo sub do endereço de e-mail ou do token de ID do usuário de destino. Para mais informações, consulte o campo login_hint na documentação do OpenID Connect.
hd Opcional. Caso seu aplicativo saiba o domínio do Workspace de que o usuário pertence, use isso para dar uma dica ao Google. Quando bem-sucedido, as contas de usuário são limitadas ou pré-selecionadas para o domínio fornecido. Para mais informações, consulte o campo hd na documentação do OpenID Connect.
state Opcional. Não recomendado. Especifica qualquer valor de string que o aplicativo usa para manter o estado entre a solicitação de autorização e a resposta do servidor de autorização.
error_callback Opcional. A função JavaScript que processa alguns erros não OAuth, como falha ao abrir a janela pop-up ou ser fechada antes que uma resposta OAuth seja retornada.

O campo "type" do parâmetro de entrada informa o motivo detalhado.
  • popup_failed_to_open Falha ao abrir a janela pop-up.
  • popup_closed: a janela pop-up é fechada antes que uma resposta do OAuth seja retornada.
  • unknown Marcador de posição para outros erros.

Tipo de dados: TokenClient

A classe tem apenas um método público requestAccessToken, que inicia o fluxo de UX do token OAuth 2.0.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Argumentos
overrideConfig OverridableTokenClientConfig Opcional. As configurações a serem substituídas nesse método.

Tipo de dados: OverridableTokenClientConfig

A tabela a seguir lista as propriedades do tipo de dados OverridableTokenClientConfig.

Propriedades
scope Opcional. Uma lista de escopos delimitada por espaços que identificam os recursos que seu aplicativo pode acessar em nome do usuário. Esses valores informam a tela de consentimento que o Google exibe ao usuário.
include_granted_scopes Opcional. O padrão é true. Permite que os aplicativos usem a autorização incremental para solicitar acesso a escopos adicionais no contexto. Se você definir o valor desse parâmetro como false e a solicitação de autorização for concedida, o novo token de acesso só vai cobrir os escopos aos quais o scope solicitou neste OverridableTokenClientConfig.
prompt Opcional. Uma lista de instruções delimitada por espaço e que diferencia maiúsculas de minúsculas para apresentar ao usuário.
enable_granular_consent Opcional. O padrão é true. Se definido como false, permissões mais granulares da Conta do Google serão desativadas para IDs de cliente OAuth criados antes de 2019.Se enable_granular_consent e enable_serial_consent estiverem definidos, apenas os valores enable_granular_consent vão entrar em vigor, e o valor enable_serial_consent será ignorado.

Nenhum efeito para IDs do cliente OAuth mais recentes, já que permissões mais granulares estão sempre ativadas para eles.
enable_serial_consent Obsoleto. Use enable_granular_consent Isso tem o mesmo efeito que enable_granular_consent. Aplicativos já existentes que usam enable_serial_consent podem continuar a fazer isso, mas é recomendável atualizar seu código para usar enable_granular_consent na próxima atualização do aplicativo.
login_hint Opcional. Se o aplicativo souber qual usuário deve autorizar a solicitação, ele poderá usar essa propriedade para fornecer uma dica de login ao Google. Quando bem-sucedida, a seleção de conta é ignorada. O valor do campo sub do endereço de e-mail ou do token de ID do usuário de destino. Para mais informações, consulte o campo login_hint na documentação do OpenID Connect.
state Opcional. Não recomendado. Especifica qualquer valor de string que o aplicativo usa para manter o estado entre a solicitação de autorização e a resposta do servidor de autorização.

Tipo de dados: TokenResponse

Um objeto JavaScript TokenResponse vai ser transmitido ao método de callback na UX pop-up.

A tabela a seguir lista as propriedades do tipo de dados TokenResponse.

Propriedades
access_token O token de acesso de uma resposta de token bem-sucedida.
expires_in Ciclo de vida do token de acesso em segundos.
hd O domínio hospedado ao qual o usuário que fez login pertence.
prompt O valor do prompt usado da lista de valores possíveis especificados por TokenClientConfig ou OverridableTokenClientConfig.
token_type O tipo do token emitido.
scope Uma lista de escopos delimitados por espaço, aprovados pelo usuário.
state O valor da string que seu aplicativo usa para manter o estado entre a solicitação de autorização e a resposta.
error Um único código de erro ASCII.
error_description Texto ASCII legível que fornece informações adicionais, usadas para ajudar o desenvolvedor do cliente a entender o erro que ocorreu.
error_uri Um URI que identifica uma página da Web legível com informações sobre o erro e é usado para fornecer ao desenvolvedor do cliente mais informações.

Método: google.accounts.oauth2.hasGrantedAllScopes

Verifica se o usuário concedeu todo o escopo ou os escopos especificados.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Argumentos
tokenResponse TokenResponse Obrigatório. Um objeto TokenResponse.
firstScope string Obrigatório. O escopo a ser verificado.
restScopes string[] Opcional. Outros escopos a serem verificados.
Retorna
boolean Verdadeiro se todos os escopos forem concedidos.

Método: google.accounts.oauth2.hasGrantedAnyScope

Verifica se o usuário concedeu algum dos escopos especificados.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Argumentos
tokenResponse TokenResponse Obrigatório. Um objeto TokenResponse.
firstScope string Obrigatório. O escopo a ser verificado.
restScopes string[] Opcional. Outros escopos a serem verificados.
Retorna
boolean Verdadeiro se qualquer um dos escopos for concedido.

Método: google.accounts.oauth2.revoke

O método revoke revoga todos os escopos que o usuário concedeu ao app. Um token de acesso válido é necessário para revogar a permissão.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Argumentos
accessToken string Obrigatório. Um token de acesso válido.
callback função Opcional. RevocationResponse.

Tipo de dados: RevocationResponse

Um objeto JavaScript RevocationResponse vai ser transmitido ao método de callback.

A tabela a seguir lista as propriedades do tipo de dados RevocationResponse.

Propriedades
successful Booleano. true ativado, false em caso de falha.
error String. Indefinido quanto ao sucesso. Um único código de erro ASCII. Isso inclui, mas não se limita a, códigos de erro padrão do OAuth 2.0. Erros comuns no método revoke:
  • invalid_token: o token já expirou ou foi revogado antes da chamada do método revoke. Na maioria dos casos, a concessão associada ao accessToken foi revogada.
  • invalid_request: o token não é revogável. Verifique se accessToken é uma credencial do Google OAuth 2.0 válida.
error_description String. Indefinido quanto ao sucesso. O texto ASCII legível fornece mais informações sobre a propriedade error. Os desenvolvedores podem usar isso para entender melhor o erro que ocorreu. A string error_description está disponível apenas em inglês. Para os erros comuns listados em error no error_description correspondente:
  • invalid_token: o token expirou ou foi revogado.
  • invalid_request: o token não é revogável.