rails cookies 的大小事

看了幾篇在討論Cookies跟Session的文章,然後用自己的理解大概整理一下內容

Cookies

Cookies跟Session都是用來儲存資訊的手段。

Cookies常用來作為判斷使用者是否登入的方法

Cookies是儲存在客戶端Session是存在server端。

Cookies有著安全性的問題(被修改),不要在Cookies儲存敏感資料

Cookies有著4k的檔案大小限制。

Cookie可以設定:expires屬性,讓儲存在客戶端的Cookie有效期限可以活得更久

cookies[:user] = {
    :value => "caterpillar",
    :expires => 2.week.from_now,
    :domain => "openhome.cc"
}

想建立永不失效的的Cookies的話用permanent方法建立(除非客戶端刪除Cookies)
cookies.permanent[:login] = "XJ-122"

cookies[:key]的方式去get或set Cookies,也可以用each do去看所有Cookies的資料

cookies.each do |key, value|
end

為了避免客戶端的Cookie被修改,可以使用signed方法

cookies.signed[:user] = "caterpillar"

刪除Cookies的方式

cookies.delete :user_name
or
cookies.delete(:name, domain: 'domain.com')

參考資料
ActionDispatch::Cookies
openhome.cc Cookies

comments powered by Disqus