Chrome oAuth 2.0 的扩展示例

Chrome Extension example of oAuth 2.0

chrome 开发人员扩展教程使用将于 2015 年 4 月逐步淘汰的过时的 oAuth 1:https://developer.chrome.com/extensions/tut_oauth

是否有在 chrome 扩展中实现 oAuth 2.0 的教程?

正确答案是使用 Google Identity api, which under the covers uses oAuth 2.0 endpoints to https://.chromiumapp.org/* urls

我已经写了一个如何 integrate any OAuth2 system into a Chrome extension 的例子。我的扩展使用 AngularJS 作为框架,但如果您选择遵循相同的模式,您可以在普通的旧 JavaScript 或其他框架中进行。

诀窍是使用 chrome.identity.launchWebAuthFlow() 方法。

我的示例实际上配置为使用 Google,但这仅仅是因为它很方便。您可以使用自己的 OAuth2 提供程序,就像我在公司所做的那样。重要的区别是 launchWebAuthFlow() 不需要浏览器像 chrome.identity.getAuthToken() 方法那样登录到 Google,并且您可以将它与非 Google 一起使用OAuth2 系统。

我个人觉得 Chrome 身份 API 很难用。可能是因为文档写得不好,或者因为 Google 只是直接针对他们自己的服务进行身份验证。

我找到了一个旧库,它可以很好地完成大部分 OAuth 舞蹈和所需的注入。 我做了一些清理并扩展了 API。您可以在这里找到它:https://github.com/whoisjuan/ChromeAuth2

此时可能需要在manifest.json

中加入"https://www.googleapis.com/auth/contacts"
....
"oauth2": {
    "client_id": "[Your Client Id]",
    "scopes": ["https://www.googleapis.com/auth/contacts"]
  }
....