2013-04-30 51 views
2

我们的应用程序是使用node-webkit构建的,我们希望添加一个认证层。
我们可以使用node-webkit作为常规浏览器并打我们的网站(即重定向到http://www.oursite.com),但我们会放弃webkit的所有兴趣。这里的要点是从一开始就认证用户,即使用本地url,它应该看起来像* file:/// C:/Users/ALEXAN~1/AppData/Local/Temp/nw7628_20315/index.html*

在node-webkit中使用oauth

根据this question,我们可以使用fb认证工作。

但是有没有办法使用oauth?即来到我的脑海里这两个解决方案:

  • 使用iframe的页面,但OAuth的供应商里面死不这样的请求
  • 与我们当地的返回URL直接调用的OAuth(文件:/// ...),但重定向到本地文件也在浏览器中禁用(因此在webkit中)。

这可能是一个相当普遍的问题,但是我错过了oauth/node-webkit的任何东西?
如果不可能,您将如何在这样的应用程序中对用户进行身份验证?

回答

3

请勿使用客户端oauth,使其通过node-webkit的“服务器端”。这意味着,你可以弹出一个窗口,重定向它,当你完成后关闭它。您需要通过使用request库或Facebook SDK oauth的API SDK所需的所有必要信息。这个过程的

部分我已经张贴在这里window.open without popup blocker using AJAX and manipulating the window.location

+0

我没有实现你的方法还没有时间,但似乎很聪明。 只有一个想法:你不能在弹出窗口中看到url(与iframe相比)。这是一个安全漏洞吗? – alexpoint 2013-05-22 09:45:03

+0

好吧,我想是的。较新的浏览器默认忽略位置= 0,只是为了让你能够看到位置。 IE浏览器当然隐藏了预期的位置。至少在Chrome和Firefox中,这不是问题 – pocesar 2013-05-22 16:50:36