簡體   English   中英

Internet Explorer中的FB.login重定向

[英]FB.login Redirect in Internet Explorer

以下函數綁定到按鈕onclick處理程序。 它應該工作的方式是,一旦用戶通過Facebook進行身份驗證,他們就會重定向到頁面(在同一站點上),該頁面使用Facebook Cookie對其進行身份驗證。 身份驗證成功后,/ fb / login端點會將其轉發到剛登錄的頁面上。

function ButtonFBLogin(){
    FB.login(function(response){
        if(response.authResponse){
            window.location.href = '/fb/login';
        }
    }
});

此重定向可在Chrome和Firefox中使用。 在IE中,它向/ fb / login發出GET請求,然后重定向到用戶來自的頁面,但該用戶未通過身份驗證。

我嘗試過的事情:

  • 將重定向包裝在setTimeout中,以將其放在事件隊列中,但是我仍然遇到相同的問題。
  • document.location.href而不是window.location.href
  • 通過將?tmp =附加到URL來清除緩存

我究竟做錯了什么? 預先感謝您的任何幫助!

這是金字塔存在的問題。 我已經向他們提交了問題報告: 問題線程

基本上,金字塔允許您為身份驗證票證指定max_age。 此參數設置cookie的max-age參數,但不設置expires參數。 Firefox和Chrome均可正確處理此max-age字段。 Internet Explorer沒有。

它使用max-age seconds整數作為expires字段的值。 Internet Explorer希望將expires字段設置為RFC 1123格式(Wdy,DD Mon YYYY HH:MM:SS GMT)。 它無法理解expires字段中的整數。 與其保留cookie,不如將它扔掉。 有關最大壽命和到期時間的討論,請參見Wikipedia。

希望這可以防止其他人在最近的桌子上撞頭!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM