feat: add initializer to handle encrypted cookies rotation

This is needed to keep them working when switching from Rails 6.1 to Rails 7.0
This commit is contained in:
Nicolas Cavigneaux 2023-03-30 11:40:41 +02:00 committed by Colin Darie
parent 5ee60cbb0c
commit 6eef70750b
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4

View file

@ -0,0 +1,14 @@
Rails.application.config.after_initialize do
Rails.application.config.action_dispatch.cookies_rotations.tap do |cookies|
salt = Rails.application.config.action_dispatch.authenticated_encrypted_cookie_salt
secret_key_base = Rails.application.secret_key_base
key_generator = ActiveSupport::KeyGenerator.new(
secret_key_base, iterations: 1000, hash_digest_class: OpenSSL::Digest::SHA1
)
key_len = ActiveSupport::MessageEncryptor.key_len
secret = key_generator.generate_key(salt, key_len)
cookies.rotate :encrypted, secret
end
end