目前,我們的 Rails 應用程式有一個會話 cookie,保存為 www。水平餅干。(即www.example.com),因為我們現在正在使用多個子域,所以我試圖找到一種方法來基本上復制www.example.com cookie 并將其中的資料保存在 *.example.com 中
理想情況下,我正在尋找一種不需要用戶執行額外操作的解決方案(例如強制每個人退出并重新登錄)
我們使用 Ruby 2.7.4 和 Rails 5.2.6
uj5u.com熱心網友回復:
一種方法是有一個過渡期:
A期(現在):
始終讀取和寫入 cookie www.
B期(現在):
如果用戶沒有*.cookie,則讀取www.并寫入cookie *.,洗掉該cookie www.。
C期(之后):
您正在 *.exemple.com 上讀取和寫入 cookie
uj5u.com熱心網友回復:
簡單before_action復制所有值應該可以作業:
# in app/controllers/application_controller.rb
before_action :copy_cookie_values_to_root_domain
private
def copy_cookie_values_to_root_domain
cookies.each do |(key, value)|
cookies[key] = { value: value, domain: :all }
end
end
無論如何,在內部準備和處理每個請求的 cookie。因此,我不會進一步優化此方法。請記住,您也需要有一個類似的signedcookie塊,然后才能使用它們。請參閱Rails 中的 Cookie檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/376648.html
上一篇:VCR在導軌系統測驗中不使用磁帶
