簡體   English   中英

Rails 4.2:如何禁用Cookie的加密

[英]Rails 4.2 : How disable encryption for cookies

我最近將Rails 3.2應用程序升級到Rails 4.2。 我面臨新的Rails 4.2設置的cookie簽名和加密的問題,我不會這么做,因為我的應用程序與其他Rails 3應用程序交互。 我想重新介紹在4.2中創建cookie的舊方法。

的確,Rails 4 CookieStore默認情況下加密Cookie:

如果設置了secret_key_base,則將對cookie進行加密。 這與簽名的cookie相比更進一步,因為加密的cookie無法由用戶更改或讀取。 這是從Rails 4開始的默認設置。

似乎沒有辦法通過config選項關閉此功能,因此一種方法是不設置secret_key_base

另一種方法是使用重新定義的CookieStore#cookie_jar方法定義自定義會話存儲:

class ActionDispatch::Session::MyCustomStore < ActionDispatch::Session::CookieStore
  private

  def cookie_jar(request)
    request.cookie_jar.signed
  end
end

並在config.rb

config.session_store :my_custom_store

這樣,您的cookie將像在Rails 3中一樣被保存在簽名的 jar中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM