看板 Ruby 關於我們 聯絡資訊
※ 引述《rexkimta (冷杉林)》之銘言: : 就是這一段 : (http://ruby.railstutorial.org/chapters/sign-in-sign-out#sec-remember_me) : 裡面提到,要記錄使用者的登入狀態,最直覺的方法是直接把user的id存在session裡: : ``` ruby : session[:remember_token] = user.id : ``` : 需要的時候就可以取得 : ``` ruby : User.find(session[:remember_token]) : ``` : 但它也說了,這個方法只能持續到使用者關閉瀏覽器之前,但是我用我另一個採用這個方 : 法的程式測試過,關掉瀏覽器甚至是重開伺服器都沒有影響使用者的登入狀態。是不是我 : 誤解他的意思了? 這邊是說預設狀況 實際上要看你SESSION_ID在瀏覽器端cookie怎儲存的 如果這ID存成永久(rails裡的永久cookie預設是20年) 那這些SESSION自然也永久存在 : 另外,rails處理session的方式是把資料以cookie的方式存在使用者端,在伺服器端只有 : 存一個session id以作對照之用對嗎? 這哪會叫session... 所有網頁系統的SESSION做法都一樣 透過在cookie紀錄一個(通常瀏覽器關了就清掉的)SESSION_ID資料 然後在Server端上 用這個SESSION_ID去識別倒底是哪堆SESSION 而說一下... 範例裡面所給的:remember_token從頭到尾都是SESSION_ID : 在此先謝謝各位的回覆。 : ---- : 本篇文章本來先發在ruby-taiwan.org,但是它怪怪的,無法顯示我的貼文, : 所以在這裡重新問一次。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.216.102
rexkimta:哈哈,原來我從頭到尾都搞錯。 12/06 18:49
markmcm:所以rails後來有改變預設嗎?哪裡又可以設定這種長久度呢 12/15 16:40