我正在開發一個NodeJS和AngularJS的Web應用程序,這是一個PageTab應用程序到Facebook。節點Passport-Facebook登錄Facebook頁面選項卡應用程序
對於登錄,我正在使用庫Passport-facebook。
我中間件是:
passport.authenticate('facebook', {
display: 'popup',
scope: ['read_stream', 'publish_actions', 'email', 'user_photos']
})
申請工作,如果我是Facebook上的標籤外,但是當我試圖進入Facebook標籤, 我得到一個錯誤:
[Error] Refused to display'Http....'in a frame because it set 'X-Frame-Options' to 'DENY'. (login, line 0)
[Error] SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
因爲facebook permission dialog
無法從iFrame啓動
我該如何解決,保持會話管理與護照策略?
出於安全原因,登錄對話框無法顯示在任何類型的(i)框架中 - 必須在頂層窗口實例中調用登錄對話框如果您使用的框架確實不提供方法實現這一點,那麼我認爲你唯一的選擇是在觸發登錄之前(使用'top.location.href =「...」')在頁面標籤頁中跳出iframe,在頂層窗口實例中登錄,然後重定向之後回到頁面標籤地址。 – CBroe 2014-09-25 11:47:30
謝謝,我也做了,所以我希望這是一個很好的解決方案:) – jay 2014-09-25 12:55:59