[英]how does Rails check if the session_id cookie is changed by client
[英]Rails 3 session & cookie how to persist session id cookie
我正在開發一個基於session_id的簡單購物車,即用於確定使用了session_id的用戶購物車項目。
但是當用戶關閉瀏覽器然后再次打開它時, 會話ID已被更改。 他把所有物品丟進了車里。
我懷疑我可以通過在cookie中保存會話ID來提供這樣的功能。
我對嗎?
我的問題是如何提供一種功能,允許用戶即使在關閉瀏覽器后獲取他們的購物車項目?
我建議閱讀Rails指南:Action Controller Overview( http://guides.rubyonrails.org/action_controller_overview.html )。
第4節和第5節介紹了會話和Cookie,讓您更深入地了解如何使用它們,並將更輕松地應對未來的挑戰。
我還要查看Ruby on Rails ActionDispatch :: Cookies <對象文檔( http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html )
此資源中列出了您要查找的控制器代碼示例。 這是一個例子:
# Sets a cookie that expires in 1 hour.
cookies[:login] = { :value => "XJ-122", :expires => 1.hour.from_now }
cookies[:your_cookie] = {
:value => "your_cookie_value",
:expires => 100.years.from_now
}
有關詳細信息, 請查看 。
Rails默認將會話存儲在cookie中。 您可以影響cookie是否超出瀏覽器的重啟(見下文)。
Cookies不會在瀏覽器之間共享。 永遠。
如果您想使用Opera查看剛才在Firefox中創建的購物車,您需要以某種方式對商店進行身份驗證,例如使用用戶名和密碼。
有關會話的所有配置選項的說明,請參閱Rails 3其他會話配置選項(key,expires_after,secure) 。
你會想看看:expire_after,例如
:expire_after => 24.hours
(在此處找到: 在Rails 3中設置會話超時 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.