2014-11-03 50 views
4

我跟着這篇文章的API密鑰認證與Symfony的:Symfony2的 - 沒有會話cookie有狀態的API密鑰認證

http://symfony.com/doc/current/cookbook/security/api_key_authentication.html

它解釋了認證部分很好,但它似乎並沒有解釋如何之間的狀態請求在正常會話之外工作。

但是在某些情況下(如OAuth流),令牌只能在 上發送一個請求。在這種情況下,您將需要驗證用戶 並將該驗證存儲在會話中,以便用戶爲每個後續請求自動登錄到 。

這是有道理的,但如何將用戶鏈接回在後續請求中的會話,如果一個令牌只設置在第一?我不能使用會話cookie,因爲CORS限制不允許我。

我基本上試圖實現的是一個API,我可以將登錄憑證發佈到一個訪問令牌的回報中,該令牌允許我將請求鏈接回會話。

任何人都可以幫助填補一些空白,或建議一個更好的方法嗎?

回答

0

這很有道理,但如果用戶僅在第一個請求上提供令牌,那麼用戶如何在後續請求中鏈接回會話?

如果您使用本機的會話處理器,會話,會話ID以及會話cookie自動由PHP的會話處理程序,只要你要求在Symfony的會話發送給客戶端。

我不能使用會話cookie,因爲CORS限制不允許我。

然後,您不能使用只在最開始(第一個請求)提供安全密鑰而不在隨後的請求中發送任何其他API密鑰的認證機制。

我基本上試圖實現的是一個API,我可以將登錄憑證發佈到,作爲訪問令牌的返回,允許我將請求鏈接回會話。

然後做鏈接文檔正在做的事情。爲每個接受憑證並返回api密鑰的人員另外提供一個路由(不受保護)。然後,在所有後續請求中使用該api密鑰,如鏈接文檔中所述。