2015-12-27 90 views
0

我的電子應用程序需要Facebook登錄。然而,我面臨兩個問題:與Facebook SDK的電子應用程序

  1. Facebook需要一個OAuth重定向URI,它在桌面應用程序的上下文中不存在。
  2. Facebook登錄需要使用cookies。

    • 對於第一個問題,在開發模式I經由DEV-服務器(的WebPack)服務的HTML,所以可通過使用作爲localhost:3000重定向URI有點兒作弊。但是,我不知道如何在生產中發佈此應用程序。
    • 對於第二個問題,我試圖安裝這個[電子cookies模塊[(https://www.npmjs.com/package/electron-cookies),但問題沒有解決。

回答

2

Khanetor。

你需要的是webPreferences.webSecurity設置爲false,請參見下面的代碼片段:

mainWindow = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    frame: true, 
    webPreferences: { 
     webSecurity: false, 
     plugins: true 
    } 
}); 

我現在正在做內電子Facebook的身份驗證自己,克服餅乾的問題有解決的另一個問題後 - 以登錄,Facebook打開新窗口,一旦你登錄它發送postMessage到其他窗口並關閉。但postMessages在Electron中的功能與它在普通瀏覽器中不一樣。

+0

你設法想出點什麼? – myusuf3

+0

是的,它可能有Facebook的身份驗證網址重定向回本地地址。基本上你可以添加導致該URL的「登錄」按鈕,並且在將用戶重定向用戶返回給本地主機之後進行驗證。 – Tautvydas

+0

對我來說,當我使用''時,我需要添加'allowpopups disablewebsecurity'使其工作 – Gaafar

1

如果不需要,請不要使用localhost。請按照FB的文檔:

redirect_uri。您想要將登錄人員重定向到的URL。該URL將捕獲來自「登錄」對話框的響應。如果您在桌面應用程序的webview中使用此功能,則必須將其設置爲https://www.facebook.com/connect/login_success.html。您可以通過轉到應用程序儀表板,單擊右側菜單中的Facebook登錄,然後在客戶端OAuth設置部分檢查有效的OAuth重定向URI,來確認該網址是爲您的應用程序設置的。

(1)https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow

編輯:我做了這個工作,如果你有更多的問題問了。

+0

您能提供一個工作示例嗎? – po5i

相關問題