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

作者: johnlinvc (阿翔)   2013-12-06 15:52:18
※ 引述《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
這倒不一定
根據http://guides.rubyonrails.org/action_controller_overview.html#session
預設的 ActionDispatch::Session::CookieStore
就是把所有的data 簽證過後存在cookie 裡
所以有的時候會遇到資料太多超過4K 大小的問題
作者: danny8376 (釣到一隻猴子@_@)   2013-02-06 17:41:00
好吧 還有CookieStorge... 雖然這東西...

Links booklink

Contact Us: admin [ a t ] ucptt.com