将Chrome扩展程序中的Google身份传递到我的node.js应用

时间:2015-12-29 15:48:02

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

概述 我正在尝试了解服务器和Chrome扩展程序中OAuth安全性之间的交互。我想我有90%的答案都有效,但我有点失误。我想找到使用现有工具完成实现的最简洁方法,而不是重新发明任何轮子。

后台:我有一个使用passport,passport-google-auth和express-session的node.js应用来验证用户身份。我保存了每位用户的信息,并以用户的Google身份为标识。这很好用。我的网页可以与应用交换数据,并且谷歌登录屏幕会在我预期的情况下正确弹出。

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

对我来说,最简单的答案似乎就是使用Stormpath API。这需要一些努力,但相当简单。