回答

3

這是由WebAuthFlow class,其目的是以下處理:

鑑於提供商URL,加載URL和執行通常的網頁導航,直到它導致重定向到有效擴展重定向URL。 如果需要,提供者可以在重定向到適當的URL之前向用戶顯示任何UI。

當服務器指示瀏覽器重定向到有效的擴展重定向URL時,該URL將被傳遞給提供給chrome.identity.launchWebAuthFlow的回調函數。

在 '適當' 的網址是硬編碼web_auth_flow.cc

static const char kChromeExtensionSchemeUrlPattern[] = 
    "chrome-extension://%s/"; 
static const char kChromiumDomainRedirectUrlPattern[] = 
    "https://%s.chromiumapp.org/"; 

所以特殊的URL https://<app-id>.chromiumapp.org/*只在chrome.identity API的WebAuthFlow的情況下工作。請注意,該機制完全在Chrome內部。該URL從未被請求。

+0

儘管如此,遠程服務器能夠在OAuth流程中聯繫特定的瀏覽器。我的問題更多地是關於實際如何工作(您的瀏覽器充當遠程終端的「服務器」的機制)。 –

+0

服務器從不聯繫瀏覽器。他們只回答瀏覽器請求。其中一個答案可以是重定向。當重定向到'chromiumapp.org' URL時,Auth Flow就完成了。 – rsanchez

+0

因爲這個原因,我在引號中使用了「server」;)另外還有SSE(https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)。但我的觀點是 - OAuth服務器擊中了'chromiumapp.org',對吧?這是如何轉化爲瀏覽器獲取服務器發送到該URL的信息的? –