[英]Why Rails change Set-Cookie header every request for the same session
我正在使用基於cookie的會話存儲的Rails 4,發現每次刷新頁面時Rails 4都會給我一個不同的cookie,但它仍然可以識別我。
將它與另一個使用Rack::Session::Cookie
機架應用相比較,它只會為第一個請求發送Set-Cookie
,直到對會話數據進行了一些更改。
他們為什么設計不同? 背后有什么理由嗎?
這是因為Rails處理會話存儲和cookie加密的方式:
Set-Cookie
標頭的代碼之前。 我在回答這個問題時會詳細介紹: 為什么rails會不斷發回Set-Cookie標頭?
Rails cookie_store默認使用EncryptedKeyRotatingCookieJar,並生成encrypt_and_sign值。 該值使用MessageEncryptor#_encrypt方法,該方法使用Random【cipher.random_iv】。 因此,每次相同的值都會生成不同的encrypt_and_sign結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.