Chromiumapp.org 扩展重定向如何适用于 Google Chrome?

Bru*_*nes 7 google-chrome google-chrome-extension oauth-2.0 google-oauth

当您创建 Chrome 扩展程序并想要使用 OAuth 2.0 时,您可以使用https://<app-id>.chromiumapp.org/*URL,因此能够让远程服务器直接访问您的浏览器实例(之前已回答 - 例如/sf/answers/2142952241/)。有谁知道,或者能够对这是如何工作的进行理论分析?您是否能够在浏览器中定位任何请求,还是仅适用于 OAuth 2.0?

rsa*_*hez 6

这由WebAuthFlowclass处理,其目的如下:

给定提供程序 URL,加载 URL 并执行常规的 Web 导航,直到重定向到有效的扩展重定向 URL。如果需要,提供者可以在重定向到适当的 URL 之前向用户显示任何 UI。

当服务器指示浏览器重定向到有效的扩展重定向 URL 时,该 URL 将传递给提供给chrome.identity.launchWebAuthFlow.

“适当”的 URL 被硬编码在web_auth_flow.cc

static const char kChromeExtensionSchemeUrlPattern[] =
    "chrome-extension://%s/";
static const char kChromiumDomainRedirectUrlPattern[] =
    "https://%s.chromiumapp.org/";
Run Code Online (Sandbox Code Playgroud)

因此,特殊 URLhttps://<app-id>.chromiumapp.org/*仅适用于chrome.identityAPI的 WebAuthFlow 上下文。请注意,该机制完全是 Chrome 内部的。从不请求 URL。

  • 不可以。OAuth 服务器告诉浏览器重定向到 `chromiumapp.org`。浏览器将 URL 传递给您提供给 `chrome.identity.launchWebAuthFlow` 的回调函数,而不是这样做。 (5认同)