Re: [問題] rails tutorial某段看不太懂

看板Ruby作者 (冷杉林)時間10年前 (2013/12/06 18:58), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《danny8376 (釣到一隻猴子@_@)》之銘言: : ※ 引述《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 這裡的意思是說rails tutorial裡的作法其實只是把SESSION_ID重新作出來? 還是其他什麼意思? : : 在此先謝謝各位的回覆。 : : ---- : : 本篇文章本來先發在ruby-taiwan.org,但是它怪怪的,無法顯示我的貼文, : : 所以在這裡重新問一次。 另外我還有個問題, 為什麼rails tutorial不選擇設定session為「永不過期」(也就是二十年) 而要採用這麼麻煩的方法? 又要自己加密又要新增資料庫欄位等等…… 還是說session無法作這樣的設定? -- ★ 辰星! 歡迎加入五行戰鬥牌的奇幻世界! 太白! 歲星! 官方網站:(內有討論區) 鎮星!熒惑! http://goo.gl/jC2sp 「當蒼茫天穹中 那並非最閃亮 PTT台大社版:NTU-CFE 但卻最純淨的五顆星 連成一線時, 天與地的共鳴 將永不止歇,其力量可至無限。」 ψrexkimta -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.193.23

12/07 02:38, , 1F
session 設定永不過期,是要server硬碟被塞暴嗎?
12/07 02:38, 1F

12/07 02:39, , 2F
cookie 永不過期:該 user 電腦被放一個檔案
12/07 02:39, 2F

12/07 02:39, , 3F
session 永不過期:每個user都在server放一個檔案
12/07 02:39, 3F
文章代碼(AID): #1IeQsugE (Ruby)
文章代碼(AID): #1IeQsugE (Ruby)