google-chrome-extension - 将 google 身份从 chrome 扩展程序传递到我的 node.js 应用程序

标签 google-chrome-extension oauth-2.0 google-oauth passport.js

概述: 我试图了解我的服务器和我的 chrome 扩展程序中的 OAuth 安全性之间的交互。我认为我有 90% 的答案有效,但我遗漏了一点。我想找到最简洁的方法来使用现有工具完成我的实现,而不是重新发明任何轮子。

背景:我有一个使用 passport、passport-google-auth 和 express-session 来验证用户身份的 node.js 应用程序。我保存每个用户的信息,以用户的 Google 身份作为关键字。这很好用。我的网页可以与该应用程序交换数据,而且 Google 登录屏幕会在我预期的情况下正确弹出。

我还有一个 chrome 扩展,其中包括一个需要将数据写入我的 node.js 应用程序的 browser_action 弹出窗口和一个需要从我的应用程序读取数据的 content_script。

我的扩展程序已经使用 chrome.identity.getAuthToken 来获取用户身份。 对于测试,如果我忽略安全性,我可以将此 ID 传递到我的 node.js 应用程序,并访问我需要的信息。

但是,这当然不好。我希望我的 node.js API 被锁定,只允许拥有 Passport 为我生成的 cookie 的客户端。

旁注:我想,相反,我可以重新发明一些歌舞轮,并通过 https 将 id 安全地传递到我的服务器。但这似乎完全错误,对吧?

问题:我认为我的 chrome 扩展确实应该直接与我的 node.js 应用程序一起执行 OAuth2 舞蹈。但是,我不知道我应该使用哪一 block ,或者如何干净利落地使用 chrome.identity。我怀疑我只是缺少一点智慧,但我不知道它是什么。

旁注:因为 cookie 在浏览器选项卡之间共享,所以我可以(笨拙地)通过从浏览器中的另一个选项卡简单地连接到我的 node.js 应用程序来实现我想要的。所以,我想我只需要从我的扩展后台页面获得相同的行为。

最佳答案

看起来对我来说最简单的答案是为此使用 Stormpath API。这需要一些努力,但相当简单。

关于google-chrome-extension - 将 google 身份从 chrome 扩展程序传递到我的 node.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514364/

相关文章:

javascript - 如何使用 OAuth2 在客户端 angularjs 应用程序中存储 clientId 和 clientSecret?

python-2.7 - run_flow 提示获取最少三个参数

java - 如何使用Google OAuth2实现Tomcat 8.0容器级身份验证?

php - Google API PHP 离线访问, "invalid_grant: Code was already redeemed"

javascript - Chrome 扩展程序阻止 google.co.uk

javascript - 使用requirejs为chrome扩展创建bluebird promise 时出错

reactjs - 使用 AWS 放大通过网站登录到 chrome 扩展

javascript - 对解析的 JSON 值的计算产生 NaN

oauth - OAuth 授权码应何时到期?

android - 访问 Google API - GoogleAccountCredential.usingOAuth2 与 GoogleAuthUtil.getToken()