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。