2014-02-07 44 views
0

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

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

我在做什麼錯?預先感謝您的任何幫助!

回答

0

這是金字塔的問題。我已經和他們一起提交了一個問題報告: Issue Thread

基本上,金字塔允許您爲身份驗證票證指定max_age。該參數設置cookie的max-age參數,但不設置expires參數。 Firefox和Chrome都能正確處理這個最大年齡字段。 Internet Explorer不。

它使用max-age seconds integer作爲expires字段的值。 Internet Explorer期望expires字段以RFC 1123格式設置(Wdy,DD Mon YYYY HH:MM:SS GMT)。它無法理解expires字段中的整數。而不是保持它周圍的cookie拋出它。 See Wikipedia for a discussion of max-age and expires.

希望這可以防止別人把它們的頭撞到最近的桌子上!