Descrição
Use a API chrome.identity para receber tokens de acesso do OAuth2.
Permissões
identityTipos
AccountInfo
Propriedades
-
ID
string
Um identificador exclusivo da conta. Esse ID não vai mudar durante a vida útil da conta.
AccountStatus
Enumeração
"SYNC"
Especifica que a sincronização está ativada para a conta principal.
"ANY"
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
ProfileUserInfoprecisa ser retornado. O padrão é o status da contaSYNC.
ProfileUserInfo
Propriedades
-
e-mail
string
Um endereço de e-mail da conta de usuário conectada ao perfil atual. Fica vazio se o usuário não estiver conectado ou se a permissão de manifesto
identity.emailnão estiver especificada. -
ID
string
Um identificador exclusivo da conta. Esse ID não vai mudar durante a vida útil da conta. Fica vazio se o usuário não estiver conectado ou (no M41 ou versões mais recentes) a permissão de manifesto
identity.emailnão estiver especificada.
TokenDetails
Propriedades
-
conta
AccountInfo opcional
O ID da conta cujo token será retornado. Se não for especificado, a função vai usar uma conta do perfil do Chrome: a conta de sincronização, se houver, ou a primeira conta da Web do Google.
-
enableGranularPermissions
booleano opcional
Chrome 87 ou mais recenteA flag
enableGranularPermissionspermite que as extensões ativem antecipadamente a tela de permissão granular, em que as permissões solicitadas são concedidas ou negadas individualmente. -
interativo
booleano opcional
Para buscar um token, talvez seja necessário que o usuário faça login no Chrome ou aprove os escopos solicitados pelo aplicativo. Se a flag interativa for
true,getAuthTokenvai solicitar ao usuário conforme necessário. Quando a flag éfalseou omitida,getAuthTokenretorna falha sempre que um comando for necessário. -
escopos
string[] opcional
Uma lista de escopos do OAuth2 a serem solicitados.
Quando o campo
scopesestá presente, ele substitui a lista de escopos especificados em manifest.json.
WebAuthFlowDetails
Propriedades
-
abortOnLoadForNonInteractive
booleano opcional
Chrome 113 ou mais recenteSe é necessário encerrar
launchWebAuthFlowpara 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 após a aprovação dotimeoutMsForNonInteractive. Isso é útil para provedores de identidade que usam JavaScript para fazer redirecionamentos depois que a página é carregada. -
interativo
booleano opcional
Indica 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
launchWebAuthFlowoculta a visualização da Web até que a primeira navegação redirecione para o URL final ou termine de carregar uma página destinada a ser exibida.Se a flag
interactivefortrue, a janela será exibida quando o carregamento de uma página for concluído. Se a flag forfalseou omitida,launchWebAuthFlowvai retornar com um erro se a navegação inicial não concluir o fluxo.Para fluxos que usam JavaScript para redirecionamento,
abortOnLoadForNonInteractivepode ser definido comofalseem combinação com a definição detimeoutMsForNonInteractivepara dar à página a chance de realizar redirecionamentos. -
timeoutMsForNonInteractive
número optional
Chrome 113 ou mais recenteO tempo máximo, em milissegundos, que
launchWebAuthFlowpode ser executado no modo não interativo no total. Só tem efeito seinteractiveforfalse. -
url
string
O URL que inicia o fluxo de autenticação.
Métodos
clearAllCachedAuthTokens()
chrome.identity.clearAllCachedAuthTokens(
callback?: function,
): Promise<void>
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.
- Remove a autorização do usuário de todos os fluxos de autenticação.
Parâmetros
-
callback
função optional
O parâmetro
callbacktem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 106 ou mais recenteRetorna uma promessa que é resolvida quando o estado é limpo.
As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getAccounts()
chrome.identity.getAccounts(
callback?: function,
): Promise<AccountInfo[]>
Recupera uma lista de objetos AccountInfo que descrevem as contas presentes no perfil.
O getAccounts só é compatível com o canal de desenvolvimento.
Parâmetros
-
callback
função optional
O parâmetro
callbacktem esta aparência:(accounts: AccountInfo[]) => void
-
contas
-
Retorna
-
Promise<AccountInfo[]>
As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getAuthToken()
chrome.identity.getAuthToken(
details?: TokenDetails,
callback?: function,
): Promise<GetAuthTokenResult>
Recebe um token de acesso do OAuth2 usando o ID do cliente e os escopos especificados na seção oauth2 do manifest.json.
A API Identity armazena em cache os tokens de acesso na memória. Por isso, é possível chamar getAuthToken de forma não interativa sempre que um token for necessário. O cache de token processa a expiração automaticamente.
Para uma boa experiência do usuário, é importante que as solicitações de token interativas sejam iniciadas pela interface do seu app, explicando para que serve a autorização. Se você não fizer isso, seus usuários vão receber solicitações de autorização ou telas de login do Chrome sem contexto. Em particular, não use getAuthToken de forma interativa quando o app for iniciado pela primeira vez.
Observação: quando chamada com um callback, em vez de retornar um objeto, essa função retorna as duas propriedades como argumentos separados transmitidos ao callback.
Parâmetros
-
detalhes
TokenDetails opcional
Opções de token.
-
callback
função optional
O parâmetro
callbacktem esta aparência:(result: GetAuthTokenResult) => void
-
resultadoChrome 105 ou mais recente
-
Retorna
-
Promise<GetAuthTokenResult>
Chrome 105 ou mais recenteRetorna uma promessa que é resolvida com um token de acesso do OAuth2, conforme especificado pelo manifesto, ou rejeita se houver um erro. O parâmetro
grantedScopesé preenchido desde o Chrome 87. Quando disponível, esse parâmetro contém a lista de escopos concedidos correspondentes ao token retornado.As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getProfileUserInfo()
chrome.identity.getProfileUserInfo(
details?: ProfileDetails,
callback?: function,
): Promise<ProfileUserInfo>
Recupera o endereço de e-mail e o ID do Gaia ofuscado do usuário conectado a um perfil.
Requer a permissão identity.email no manifesto. Caso contrário, retorna um resultado vazio.
Essa API é diferente de identity.getAccounts de duas maneiras. As informações retornadas estão disponíveis off-line e se aplicam apenas à conta principal do perfil.
Parâmetros
-
detalhes
ProfileDetails opcional
Chrome 84 ou mais recenteOpções de perfil.
-
callback
função optional
O parâmetro
callbacktem esta aparência:(userInfo: ProfileUserInfo) => void
-
userInfo
-
Retorna
-
Promise<ProfileUserInfo>
Chrome 106 ou mais recenteRetorna uma promessa que é resolvida com o
ProfileUserInfoda conta principal do Chrome ou umProfileUserInfovazio se a conta com odetailsespecificado não existir.As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
getRedirectURL()
chrome.identity.getRedirectURL(
path?: string,
): 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,
): Promise<string | undefined>
Inicia um fluxo de autenticação no URL especificado.
Esse método permite fluxos de autenticação com provedores de identidade que não são do Google ao iniciar uma visualização da Web e navegar até o primeiro URL no fluxo de autenticação do provedor. Quando o provedor redireciona para um URL que corresponde 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 do app, explicando a finalidade da autorização. Se você não fizer isso, seus usuários vão receber pedidos de autorização sem contexto. Em especial, não inicie um fluxo de autenticação interativo quando o app for iniciado pela primeira vez.
Parâmetros
-
detalhes
Opções de fluxo do WebAuth.
-
callback
função optional
O parâmetro
callbacktem esta aparência:(responseUrl?: string) => void
-
responseUrl
string opcional
-
Retorna
-
Promise<string | undefined>
Chrome 106 ou mais recenteRetorna uma promessa que é resolvida com o URL redirecionado de volta ao seu aplicativo.
As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
removeCachedAuthToken()
chrome.identity.removeCachedAuthToken(
details: InvalidTokenDetails,
callback?: function,
): Promise<void>
Remove um token de acesso OAuth2 do cache de tokens da API Identity.
Se um token de acesso for considerado inválido, ele deverá ser transmitido para removeCachedAuthToken e removido do cache. Em seguida, o app pode recuperar um novo token com getAuthToken.
Parâmetros
-
detalhes
Informações do token.
-
callback
função optional
O parâmetro
callbacktem esta aparência:() => void
Retorna
-
Promessa<void>
Chrome 106 ou mais recenteRetorna uma promessa que é resolvida quando o token é removido do cache.
As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.
Eventos
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
Acionada quando o estado de login muda para uma conta no perfil do usuário.
Parâmetros
-
callback
função
O parâmetro
callbacktem esta aparência:(account: AccountInfo, signedIn: boolean) => void
-
conta
-
signedIn
booleano
-