identity
使用 identity API 获取 OAuth2 授权码或访问令牌,扩展程序随后可以使用该令牌来访问支持 OAuth2 访问的服务(如 Google 或 Facebook)中的用户数据。
OAuth2 流因服务提供商而异,因此,要将此 API 与特定服务提供商一起使用,请查阅其文档。例如:
identity API 提供了 identity.launchWebAuthFlow() 函数。如果需要,此函数会通过服务对用户进行身份验证,并请求用户授权扩展程序访问数据。根据提供商的不同,该函数会以访问令牌或授权码完成。
然后,扩展程序完成 OAuth2 流以获取已验证的访问令牌,并使用该令牌在 HTTPS 请求中访问用户根据用户授予的授权提供的数据。
要使用此 API,您必须拥有 "identity" API 权限。
设置
在发布扩展程序之前,您必须进行一些设置。
获取重定向 URL
重定向 URL 代表 identity.launchWebAuthFlow() 的终结点,其中将访问令牌或授权码传递给扩展程序。浏览器会从重定向 URL 中提取结果,而无需加载其响应。
通过调用 identity.getRedirectURL() 来获取重定向 URL。此函数从插件 ID 派生重定向 URL。为了简化测试,请使用 browser_specific_settings 键显式设置插件 ID(否则,每次 临时安装插件 时,都会获得一个不同的重定向 URL)。
identity.getRedirectURL() 返回一个具有固定域名和从插件 ID 派生的子域名的 URL。某些 OAuth 服务器(如 Google)只接受已验证所有权的域名作为重定向 URL。由于开发人员无法控制虚拟域名,因此默认域名并非总能使用。
但是,回环地址是一个可接受的替代方案,不需要域名验证(基于 RFC 8252,第 7.3 节)。从 Firefox 86 开始,格式为 http://127.0.0.1/mozoauth2/[来自 identity.getRedirectURL() 返回的 URL 的子域名] 的回环地址被允许作为重定向 URL 的值。
注意:从 Firefox 75 开始,您必须使用 identity.getRedirectURL() 返回的重定向 URL。早期版本允许您提供任何重定向 URL。
从 Firefox 86 开始,上面描述的特殊回环地址也可以使用。
您将在两个地方使用重定向 URL:
- 在将扩展程序注册为 OAuth2 客户端时提供它。
- 将其作为 URL 参数传递到
identity.launchWebAuthFlow()的url参数中。
注册您的扩展程序
在使用 OAuth2 与服务提供商进行交互之前,您必须将扩展程序作为 OAuth2 客户端注册到提供商。
这通常特定于服务提供商,但总的来说,这意味着在提供商的网站上为您的扩展程序创建一个条目。在此过程中,您将提供重定向 URL,并收到一个客户端 ID(有时还有一个密钥)。您需要将这两者都传递给 identity.launchWebAuthFlow()。
函数
identity.getRedirectURL()-
获取重定向 URL。
identity.launchWebAuthFlow()-
启动 WAF。
扩展程序示例
浏览器兼容性
加载中…
注意:此 API 基于 Chromium 的 chrome.identity API。