最近,我被要求將XML API添加到我的項目中的一個Symfony模塊。我做到了,而且效果很好。爲了驗證,我們使用sfGuardPlugin
。 Symfony版本是1.3.11。使用推進,而不是學說。sfGuardPlugin會話:如何通過wget重用它 - 或將SID映射到sfGuardUser
最近的請求對我來說是這樣的:
- 我們將嵌入一個Flash遊戲到網站。
- Flash將對XML API執行請求。
- 編寫Flash應用程序的人說,它不會與瀏覽器共享cookie。
- 我們希望Flash能夠重用當前登錄用戶的會話(如果沒有用戶登錄,我們將不允許顯示)。
我沒有嘗試這個潛在的解決方案:
- 我被告知,Symfony的會話駐留在
symfony
Cookie(由其他SO文章和各種谷歌的搜尋結果)。 - 有人告訴我,如果我在另一個客戶端複製此值(在我的情況,
wget
)做session_id("stolen_session_id")
我將能夠複製的會議,具有相同的用戶登錄等 - 這橫空出世是錯的。說我的cookie symfony具有「blabla」的價值。我這樣做了:
wget --post-data='session_id=blabla' X.X.X.X:NN/api/bla.xml -O-
。我的服務器PHP代碼分析此POST參數並將其提供給session_id
函數。然後在日誌中報告session_id('blabla')
正在返回1
。然而,致電$this->getUser()->getGuardUser()
返回null
。
我需要一種方法來傳遞一個映射session_id
到有效sfGuardUser
。或找到重用已存在會話的備用方法。
假設我可以完全訪問cookie。我想知道他們中的哪一個(或所有人?)爲了實現這一點而複製。
順便說一句,我看到在我的Chrome開發工具中,symfony
Cookie屬於會話類型。所以毫無疑問,爲什麼我的方法不起作用,但是我在使用sfGuardPlugin
的同時在Symfony中如何做到這一點,我一點也不知道。
我知道這不是最明智的問題之一,但同樣,我只需要幫助。
感謝您的時間。
(Dimitar P.)
哎呀,忘了提,我看到我的域名這餅乾:
- symfony的
- sfRemember
- __utma
- __utmb
- __utmc
- __utmz
不過,我猜最後四項是針對Google Analytics的。
好吧,我等了很長時間,以便有人回答我的問題並得到他的15位代表,但是由於沒有人出現了,我會接受我的回答。 ;) – dimitarvp