Я следую нескольким другим темам SO о том, как вручную расшифровывать строку сеанса ...
cookie = CGI::unescape(params[:session])
salt = Rails.application.config.action_dispatch.encrypted_cookie_salt
signed_salt = Rails.application.config.action_dispatch.encrypted_signed_cookie_salt
key_generator = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base, iterations: 1000)
secret = key_generator.generate_key(salt)[0, ActiveSupport::MessageEncryptor.key_len]
sign_secret = key_generator.generate_key(signed_salt)
encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret)
decrypted_session = encryptor.decrypt_and_verify(cookie)
Проблема в том, что в Rails 5.2 значение secret_key_base
равно nil, что приводит к сбою этого шага. Я попробовал пустую строку ''
, но это также не помогло.
Я не использую новый метод master_key, я все еще решил использовать secret_key_base