2013-04-30 53 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