chrome.identity
Description
使用 chrome.identity
API 获取 OAuth2 访问令牌。
Permissions
identity
Summary
Types
Methods
Events
Types
AccountInfo
PROPERTIES
id
string
帐户的唯一标识符。此 ID 在帐户的整个生命周期内不会更改。
AccountStatus
Chrome 84+
TYPE
"SYNC", or "ANY"
InvalidTokenDetails
PROPERTIES
token
string
应从缓存中删除的特定令牌。
ProfileDetails
Chrome 84+
PROPERTIES
accountStatus
AccountStatus optional
登录到应返回 ProfileUserInfo
的配置文件的主帐户的状态。默认为 SYNC
帐户状态。
ProfileUserInfo
PROPERTIES
string
登录到当前配置文件的用户帐户的电子邮件地址。如果用户未登录或未指定 identity.email
清单权限,则为空。
id
string
帐户的唯一标识符。此 ID 在帐户的整个生命周期内不会更改。如果用户未登录或(在 M41+ 中)未指定 identity.email
清单权限,则为空。
TokenDetails
PROPERTIES
account
AccountInfo optional
应返回其令牌的帐户 ID。如果未指定,该函数将使用 Chrome 配置文件中的帐户:同步帐户(如果有),否则为第一个 Google 网络帐户。
enableGranularPermissions
boolean optional
Chrome 87+
enableGranularPermissions
标志允许扩展提前选择加入细化权限同意屏幕,其中请求的权限被单独授予或拒绝
interactive
boolean optional
获取令牌可能需要用户登录 Chrome,或批准应用程序请求的范围。如果交互标志为true
,getAuthToken
将根据需要提示用户。当该标志为 false
或省略时,getAuthToken
将在任何需要提示时返回失败。
scopes
string[] optional
要请求的 OAuth2 范围列表。 当 scopes
字段存在时,它会覆盖 manifest.json 中指定的范围列表。
WebAuthFlowDetails
PROPERTIES
interactive
boolean optional
是否以交互模式启动身份验证流程。
由于某些身份验证流可能会立即重定向到结果 URL,launchWebAuthFlow
会隐藏其 Web 视图,直到第一个导航重定向到最终 URL,或完成加载要显示的页面。
如果交互标志为true
,则在页面加载完成时将显示该窗口。如果该标志为 false
或省略,并且初始导航未完成流程,则 launchWebAuthFlow
将返回错误。
url
string
启动身份验证流程的 URL。
Methods
clearAllCachedAuthTokens
chrome.identity.clearAllCachedAuthTokens( callback: function, )
Chrome 87+
重置身份 API 的状态:
- 从令牌缓存中删除所有 OAuth2 访问令牌
- 删除用户的帐户首选项
- 从所有身份验证流程中取消对用户的授权
PARAMETERS
callback
function
callback
参数如下所示:
() => void
getAccounts
chrome.identity.getAccounts( callback: function, )
检索描述配置文件中存在的帐户的 AccountInfo 对象列表。
getAccounts
仅在开发频道上受支持。
PARAMETERS
callback
function
callback
参数如下所示:
(accounts: AccountInfo[]) => void
accounts
AccountInfo[]
getAuthToken
chrome.identity.getAuthToken( details?: TokenDetails, callback?: function, )
使用 manifest.json 的 oauth2 部分中指定的客户端 ID 和范围获取 OAuth2 访问令牌。
Identity API 将访问令牌缓存在内存中,因此可以在需要令牌时以非交互方式调用 getAuthToken。令牌缓存自动处理过期。
为了获得良好的用户体验,重要的是交互式令牌请求由应用程序中的 UI 发起,解释授权的用途。如果不这样做,将导致您的用户收到授权请求,或者如果他们未登录,则 Chrome 登录屏幕没有上下文。特别是,当您的应用程序首次启动时,请勿以交互方式使用 getAuthToken。
PARAMETERS
details
TokenDetails optional
Token options.
callback
function optional
callback
参数如下所示:
(token?: string, grantedScopes?: string[]) => void
token
string optional
grantedScopes
string[] optional
Chrome 86+
getProfileUserInfo
chrome.identity.getProfileUserInfo( details?: ProfileDetails, callback: function, )
检索登录个人资料的用户的电子邮件地址和混淆的 gaia id。
需要 identity.email
清单权限。否则,返回空结果。
此 API 与 identity.getAccounts 有两个不同之处。返回的信息可离线使用,并且仅适用于配置文件的主帐户。
PARAMETERS
details
ProfileDetails optional
Chrome 84+
配置文件选项。
callback
function
callback
参数如下所示:
(userInfo: ProfileUserInfo) => void
userInfo
getRedirectURL
chrome.identity.getRedirectURL( path?: string, )
生成要在 launchWebAuthFlow
中使用的重定向 URL。
生成的 URL 与模式 https://<app-id>.chromiumapp.org/*
匹配。
PARAMETERS
path
string optional
附加到生成的 URL 末尾的路径。
RETURNS
string
launchWebAuthFlow
chrome.identity.launchWebAuthFlow( details: WebAuthFlowDetails, callback: function, )
在指定的 URL 处启动身份验证流。
此方法通过启动 Web 视图并将其导航到提供商身份验证流程中的第一个 URL 来启用非 Google 身份提供商的身份验证流程。当提供者重定向到匹配模式 https://<app-id>.chromiumapp.org/*
的 URL 时,窗口将关闭,最终重定向 URL 将传递给回调函数。
为了获得良好的用户体验,重要的是交互式身份验证流由应用程序中的 UI 启动,解释授权的用途。不这样做将导致您的用户获得没有上下文的授权请求。特别是,不要在您的应用程序首次启动时启动交互式身份验证流程。
PARAMETERS
details
WebAuth 流选项(flow options)。
callback
function
callback
参数如下所示:
(responseUrl?: string) => void
responseUrl
string optional
removeCachedAuthToken
chrome.identity.removeCachedAuthToken( details: InvalidTokenDetails, callback?: function, )
从身份 API 的令牌缓存中删除 OAuth2 访问令牌。
如果发现访问令牌无效,则应将其传递给 removeCachedAuthToken
以将其从缓存中删除。然后,应用程序可以使用 getAuthToken
检索新令牌。
PARAMETERS
details
令牌信息(Token information)。
callback
function optional
callback
参数如下所示:
() => void
Events
onSignInChanged
chrome.identity.onSignInChanged.addListener(
callback: function,
)
当用户个人资料上的帐户的登录状态发生变化时触发。
PARAMETERS
callback
function
callback
参数如下所示:
(account: AccountInfo, signedIn: boolean) => void
account
signedIn
boolean
By.一粒技术服务.