2010-07-16 117 views
6

我遇到了一個問題,那就是Facebook JavaScript SDK沒有在某些機器上設置cookie,所以當我嘗試使用我的應用的祕密值驗證cookie時,我的後端驗證失敗。爲什麼Facebook JavaScript SDK沒有設置Cookie?

我有demo app;重要的文件是:

客戶端使用了Facebook的JavaScript API登錄用戶,並得到他們的詳細信息,然後這些職位到我的服務器。服務器發回客戶端隨後顯示的fbs_APPID。在一些Windows機器上(在所有瀏覽器中),服務器不會獲得它所期望的cookie。什麼阻止Facebook設置cookie,以及如何解決它?

演示應用程序是在Sinatra中,但我們的產品應用程序發現錯誤是Rails,如果這有所作爲。

回答

1

走在初始化代碼lookt爲JS:

<script> 
    FB.init({ 
    appId : 'YOUR APP ID', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true // parse XFBML 
    }); 
</script> 

你能爲了得到cookie支持cookie的一個?請確保您沒有在瀏覽器中禁用Cookie。

1

不幸的是,cookie選項並不可靠......我個人更喜歡獲取javascript sdk的簽名請求,將其作爲post var發送到後端,然後解碼此簽名請求以驗證該調用。 ..

這樣它也將在safari中工作:)

乾杯!

相關問題