我正在玩Facebook Connect,試圖在我的網站上使用Facebook作爲手段或身份驗證。目前我的工作流程看起來是這樣的:Facebook訪問令牌問題
- 轉到URL
- 服務器檢查的cookie的accessToken
- 如果的accessToken存在,會自動在評論框的用戶名/資料圖片填充,並留下的accessToken在隱藏輸入
- 發送頁面提交,驗證訪問令牌(這是用表格的其餘部分提交)到客戶端
- 是一個真實的人有效的訪問令牌。如果是這樣,添加註釋,以數據庫
- 刷新頁面,以顯示新的數據
- 如果沒有訪問令牌,與
<fb:login-button>
更換用戶名/資料圖片,與所需的<script>
小號一起。- 頁發送到客戶端
- 當用戶授權頁/登錄到Facebook上,刷新頁面
- (回頂,但這次訪問令牌應該存在)
所以我有幾個問題:
這種事情安全嗎?我正想着如果沒有Facebook的雙重身份驗證(在頁面生成時檢查一次並再次檢查評論提交),我將能夠做到這一點,並且我無法用其他任何方式來維護自己的會話狀態每個客戶。這值得嗎?
是否訪問令牌到期時,我退出的Facebook?我在想它應該,但我似乎可以繼續使用相同的訪問令牌來抓取數據(即名稱,網址等),手動訪問Facebook並註銷自己。是因爲我只是要求公開信息,只有更多侵入性權限在註銷時到期?
鑑於每個想做某事的人都必須從Facebook提供一個獨特的令牌,這應該有阻止CSRF的副作用,因爲每個動作都可以追蹤到一個有效的Facebook帳戶。是對的嗎?
主要原因是,無論好壞,我希望儘可能多地在服務器端做這些事情。因此,在向Facebook進行調用之後,我並不需要大量的JavaScript在客戶端執行DOM操作,我只想將身份驗證(在這種情況下是訪問令牌)傳遞給服務器,讓服務器執行所有操作思考並讓它在第一次嘗試中吐出正確的(定製的)頁面。我真的不喜歡javascript DOM操作;任何不平凡的事情都會讓人感到困惑。 –
一旦Facebook的Javascript SDK設置了cookie,Facebook的PHP SDK就可以獲取相同的會話(通過cookie) - 然後您可以從PHP SDK(或者使用Python或您使用的任何服務器端語言)進行所有API調用 - 應該不需要自己手動傳遞訪問令牌 – Igy