我有一個Symfony應用程序,它使用mysql數據庫存儲會話數據,並使用SfGuard插件來管理身份驗證。 儘管symfony總是將認證信息保存在cookie中。無論如何,我可以禁用cookie並將認證信息存儲在數據庫或內存中嗎? 我可能需要在將來有一種單點登錄功能,其中身份驗證狀態將在多個應用程序之間持續存在,位於不同的域中。這就是爲什麼我主要想要消除使用cookie的需要。symfony 1.4 session不使用cookies
謝謝你的幫助。
我有一個Symfony應用程序,它使用mysql數據庫存儲會話數據,並使用SfGuard插件來管理身份驗證。 儘管symfony總是將認證信息保存在cookie中。無論如何,我可以禁用cookie並將認證信息存儲在數據庫或內存中嗎? 我可能需要在將來有一種單點登錄功能,其中身份驗證狀態將在多個應用程序之間持續存在,位於不同的域中。這就是爲什麼我主要想要消除使用cookie的需要。symfony 1.4 session不使用cookies
謝謝你的幫助。
您似乎不瞭解會話的工作方式。
發送給cient的cookie被稱爲會話ID,它對訪問者來說是唯一的。當他從服務器請求一個頁面時,cookie會在他的數據所在的會話表中標識該行 - 除了ID以外,除了ID之外的任何數據都會發送到客戶端。
如果沒有該ID,則無法將請求與會話數據配對,這就是爲什麼禁用Cookie後無法再登錄。 Cookie的替代方法是以其他方式傳遞會話ID,例如在url中 - php可以自動執行此操作,您只需在php.ini中啓用use_trans_sid
即可。
是的,我發現我自己,我會接受你的回答作爲答案,我會尋找其他解決方案,像這樣:http://stackoverflow.com/questions/2956214/cross-domains-sessions-shared-shopping-cart-cross-domains – brpaz
請看這裏如何獲得會議沒有餅乾:http://stackoverflow.com/questions/3740845/php-session-without-cookies這是你真正想要的?我想多域不是問題:看看堆棧交換,他們有多個站點,但是會話之間仍然存在一些同步。 – greg0ire
如果我很好地閱讀了這篇文章,爲了工作,我需要在url中附加一個會話ID。我不想那樣做。我想在我的數據庫或內存中存儲身份驗證信息(例如$ _SESSION ['authenticated'] = true。如果我禁用cookie,我不能在我的應用程序登錄 – brpaz