我有網站w1使用auhtlogic進行身份驗證,在PHP中使用w2(比如說),我想讓w2訪問由w2存儲的會話信息並將用戶登錄到w2,並檢索來自會話的user_id。如何從其他站點訪問一個站點的會話
回答
默認情況下,Rack(通過Rails用於管理其會話)通過編組會話散列(請參閱here)將會話信息存儲在cookie中,這會產生特定於Ruby的字符串。使用PHP來反序列化這些信息是非常困難的。
如果你不這樣做,你將不得不自己處理會話序列化。我認爲,一個完整的解決方案是SO一個問題的範圍,但有幾個指針:
這將是明智的,只存儲會話ID在cookie中,然後保持實際的會話數據一個可以從PHP和Rails應用程序訪問的數據庫。如果您真的想將會話信息保存在cookie中(或者在memcached之類的其他位置,也需要將其序列化),請查看跨語言的序列化策略,如MessagePack。
你會想做些事情來確保cookie不會被用戶篡改。機架使用HMAC,這是一個很好的解決方案。我從來沒有使用PHP,但我相信他們也有一個庫。
您可能已經知道這一點,但以防萬一:這都假設您的兩個應用程序共享相同的域名。如果他們不是,那麼你的用戶的瀏覽器將不會共享這兩個應用程序之間的cookie,並且你沒有什麼可以做的。例如,您可以在railsapp.yourdomain.com和phpapp.yourdomain.com之間共享會話,但不能共享railsapp.com和phpapp.com。
祝你好運!
我前段時間嘗試過一種解決方案,那更像是一種黑客行爲,但對於我的建議來說它工作得很好。
登錄後,我曾經將用戶的cookie寫入公共目錄中的文件中,當此用戶試圖訪問他必須訪問的另一臺服務器時,我的應用程序在第二臺服務器上,只需「知道如何訪問「存儲在第一臺服務器中的遠程文件並將該內容加載爲cookie。那時我用過CURL。
注意,它引入一些安全漏洞,很可能你的安全將依賴於「朦朧」 - 例如,算法來掛接cookie將被存儲在文件名以及如何訪問它和任何外部Web服務器配置..說,我認爲我們也可以考慮使用共享memcached來存儲cookie。
你有沒有考慮過使用Open ID?
保存的會話信息!但我不想更喜歡這個選項 – 2010-10-05 14:51:29
- 1. 如何從其他站點獲取會話變量
- 2. 訪問extern站點後會話註銷
- 3. WordPress多站點,如何選擇不是主站點的其他站點
- 4. 如何將移動訪問者從drupal站點重定向到其他域上的移動站點
- 5. 如何在其他站點/外部站點註銷moodle
- 6. 從蛋糕PHP站點訪問Wordpress會話
- 7. 如何從其他網站訪問nopcommerce網站?
- 8. 如何將請求從一個站點重定向到子站點站點?
- 9. 如何從另一個框中訪問grunt站點
- 10. asp.net站點會話超時問題
- 11. 訪問其他網站
- 12. IE和FF在其他站點顯示一個站點的fav圖標?
- 13. 多個站點上的PHP會話
- 14. 開發站點創建會話正常,生產站點不會
- 15. Prestashop:從其他站點導入圖像
- 16. Sharepoint:從其他站點添加列表
- 17. 如何從多站點到獨立的WordPress網站撤消一個WordPress站點?
- 18. 發送從一個站點到另一個站點的請求
- 19. 從一個站點到另一個站點的SSL表單POST
- 20. Sharepoint站點訪問問題
- 21. 如何處理訪問一個「大腦」的多個站點?
- 22. 如何通過其他站點訪問在Web服務中設置的會話/ Cookie:
- 23. buddypress在多站點的一個站點
- 24. 試圖將會員區從一個站點合併到另一個站點
- 25. 在Drupal 7的另一個站點訪問主站點的基址URL
- 26. 跨多個站點同步ASP.NET會話
- 27. 會話架構:單個站點對象
- 28. 將文件從一個站點上傳到另一個站點
- 29. 從一個站點重定向到另一個站點
- 30. 將數據從一個站點發送到另一個站點
我想你的意思是你想讓w2訪問w1存儲的會話信息。 – Shreyas 2010-10-05 06:49:51
@shreyas是的!我想讓w2訪問由w1 – 2010-10-05 08:56:38