Descrição
Use a API chrome.identity
para receber tokens de acesso do OAuth2.
Permissões
identity
Tipos
AccountInfo
Propriedades
-
id
string
Identificador exclusivo da conta. Esse ID não será alterado durante todo o ciclo de vida da conta.
AccountStatus
Enumeração
"SYNC"
Especifica que a sincronização está ativada para a conta principal.
"QUALQUER"
Especifica a existência de uma conta principal, se houver.
GetAuthTokenResult
Propriedades
-
grantedScopes
string[] opcional
Uma lista de escopos do OAuth2 concedidos à extensão.
-
token
string opcional
O token específico associado à solicitação.
InvalidTokenDetails
Propriedades
-
token
string
O token específico que deve ser removido do cache.
ProfileDetails
Propriedades
-
accountStatus
AccountStatus opcional
Um status da conta principal conectada a um perfil cujo
ProfileUserInfo
precisa ser retornado. O padrão é o status da conta:SYNC
.
ProfileUserInfo
Propriedades
-
e-mail
string
Um endereço de e-mail da conta de usuário conectada ao perfil atual. Vai ser vazio se o usuário não tiver feito login ou se a permissão de manifesto
identity.email
não estiver especificada. -
id
string
Identificador exclusivo da conta. Esse ID não será alterado durante todo o ciclo de vida da conta. Vai ser vazio se o usuário não estiver conectado ou (na versão M41 ou mais recente) a permissão de manifesto
identity.email
não estiver especificada.
TokenDetails
Propriedades
-
conta
AccountInfo opcional
O ID da conta cujo token deve ser retornado. Se não for especificada, a função usará uma conta do perfil do Chrome: a conta de sincronização, se houver uma, ou a primeira conta da Web do Google.
-
enableGranularPermissions
booleano opcional
Chrome 87 ou superiorA flag
enableGranularPermissions
permite que as extensões ativem antecipadamente a tela de consentimento de permissões granulares, em que as permissões solicitadas são concedidas ou negadas individualmente. -
interativo
booleano opcional
A busca de um token pode exigir que o usuário faça login no Google Chrome ou aprove os escopos solicitados do aplicativo. Se a flag interativa for
true
, ogetAuthToken
vai pedir ao usuário conforme necessário. Quando a flag éfalse
ou omitida,getAuthToken
retorna uma falha sempre que um comando é necessário. -
escopos
string[] opcional
Uma lista de escopos do OAuth2 a serem solicitados.
Quando o campo
scopes
está presente, ele substitui a lista de escopos especificados em manifest.json.
WebAuthFlowDetails
Propriedades
-
abortOnLoadForNonInteractive
booleano opcional
Chrome 113 ou versões mais recentesDefine se
launchWebAuthFlow
é encerrado para solicitações não interativas após o carregamento da página. Esse parâmetro não afeta os fluxos interativos.Quando definido como
true
(padrão), o fluxo será encerrado imediatamente após o carregamento da página. Quando definido comofalse
, o fluxo só será encerrado depois quetimeoutMsForNonInteractive
for transmitido. Isso é útil para provedores de identidade que usam JavaScript para executar redirecionamentos após o carregamento da página. -
interativo
booleano opcional
Define se o fluxo de autenticação será iniciado no modo interativo.
Como alguns fluxos de autenticação podem redirecionar imediatamente para um URL de resultado, o
launchWebAuthFlow
oculta a visualização da Web até que a primeira navegação redirecione para o URL final ou termine de carregar uma página que será exibida.Se a sinalização
interactive
fortrue
, a janela será exibida quando um carregamento de página for concluído. Se a flag forfalse
ou omitida,launchWebAuthFlow
vai retornar um erro se a navegação inicial não concluir o fluxo.Para fluxos que usam JavaScript para redirecionamento,
abortOnLoadForNonInteractive
pode ser definido comofalse
em combinação com a configuraçãotimeoutMsForNonInteractive
para dar à página a chance de executar qualquer redirecionamento. -
timeoutMsForNonInteractive
número opcional
Chrome 113 ou versões mais recentesO tempo máximo, em milissegundos, em que
launchWebAuthFlow
tem permissão para ser executado no modo não interativo no total. Só tem efeito seinteractive
forfalse
. -
url
string
O URL que inicia o fluxo de autenticação.
Métodos
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
)
Redefine o estado da API Identity:
- Remove todos os tokens de acesso OAuth2 do cache de tokens
- Remove as preferências da conta do usuário
- Desautoriza o usuário em todos os fluxos de autenticação
Parâmetros
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 106 ou versões mais recentesO Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
)
Recupera uma lista de objetos AccountInfo que descrevem as contas presentes no perfil.
getAccounts
só é compatível com o Canal de Desenvolvedor.
Parâmetros
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(accounts: AccountInfo[]) => void
-
contas
-
Retorna
-
Promise<AccountInfo[]>
O Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
)
Recebe um token de acesso OAuth2 usando o ID do cliente e os escopos especificados na seção oauth2
do arquivo manifest.json.
A API Identity armazena tokens de acesso em cache na memória. Portanto, não há problema em chamar getAuthToken
de forma não interativa sempre que um token for necessário. O cache de token lida automaticamente com a expiração.
Para uma boa experiência do usuário, é importante que as solicitações de token interativo sejam iniciadas pela IU no aplicativo, explicando para que serve a autorização. Se isso não for feito, os usuários receberão solicitações de autorização ou telas de login no Chrome, se não estiverem conectados, sem contexto. Em especial, não use getAuthToken
interativamente quando o app for iniciado pela primeira vez.
Observação: quando chamada com um callback, em vez de retornar um objeto, essa função retornará as duas propriedades como argumentos separados transmitidos ao callback.
Parâmetros
-
detalhes
TokenDetails opcional
Opções de token.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(result: GetAuthTokenResult) => void
-
resultadoChrome 105 ou mais recente
-
Retorna
-
Promise<GetAuthTokenResult>
Chrome 105 ou mais recenteO Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
)
Recupera o endereço de e-mail e o ID ofuscado do GAIA do usuário conectado a um perfil.
Requer a permissão de manifesto identity.email
. Caso contrário, retorna um resultado vazio.
Essa API é diferente de Identity.getAccounts de duas maneiras. As informações retornadas ficam disponíveis off-line e se aplicam somente à conta principal do perfil.
Parâmetros
-
detalhes
ProfileDetails opcional
Chrome 84 ou superiorOpções de perfil.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Retorna
-
Promise<ProfileUserInfo>
Chrome 106 ou versões mais recentesO Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
)
Gera um URL de redirecionamento para ser usado em launchWebAuthFlow
.
Os URLs gerados correspondem ao padrão https://<app-id>.chromiumapp.org/*
.
Parâmetros
-
caminho
string opcional
O caminho anexado ao final do URL gerado.
Retorna
-
string
launchWebAuthFlow()
chrome.identity.launchWebAuthFlow(
details: WebAuthFlowDetails,
callback?: function,
)
Inicia um fluxo de autenticação no URL especificado.
Esse método ativa fluxos de autenticação com provedores de identidade que não são do Google iniciando uma visualização da Web e navegando para o primeiro URL no fluxo de autenticação do provedor. Quando o provedor redireciona para um URL correspondente ao padrão https://<app-id>.chromiumapp.org/*
, a janela é fechada, e o URL de redirecionamento final é transmitido para a função callback
.
Para uma boa experiência do usuário, é importante que os fluxos de autenticação interativos sejam iniciados pela interface no app, explicando para que serve a autorização. Se isso não for feito, os usuários vão receber solicitações de autorização sem contexto. Em particular, não inicie um fluxo de autenticação interativo quando o aplicativo for iniciado pela primeira vez.
Parâmetros
-
detalhes
Opções de fluxo do WebAuth.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:(responseUrl?: string) => void
-
responseUrl
string opcional
-
Retorna
-
Promessa<string | indefinido>
Chrome 106 ou versões mais recentesO Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
)
Remove um token de acesso OAuth2 do cache de tokens da API Identity.
Se um token de acesso for inválido, ele deverá ser transmitido para removeCachedAuthToken para removê-lo do cache. Assim, o app pode extrair um novo token com getAuthToken
.
Parâmetros
-
detalhes
Informações do token.
-
callback
função opcional
O parâmetro
callback
tem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 106 ou versões mais recentesO Manifesto V3 e versões mais recentes oferecem suporte a promessas, mas callbacks são fornecidos para a compatibilidade com versões anteriores. Não é possível usar ambos na mesma chamada de função. A promessa é resolvida com o mesmo tipo passado ao retorno de chamada.
Eventos
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Disparado quando o estado de login é alterado para uma conta no perfil do usuário.
Parâmetros
-
callback
função
O parâmetro
callback
tem esta aparência:(account: AccountInfo, signedIn: boolean) => void
-
conta
-
signedIn
booleano
-