Недавно я обновил свое приложение rails 3.2 до rails 4.2. Я сталкиваюсь с проблемой файлов cookie, установленных новыми rails 4.2, подписанными и зашифрованными, чего я не буду делать, потому что мое приложение взаимодействует с другими приложениями rails 3. Я хочу вернуть старый способ создания файлов cookie в версии 4.2.
Верно, что Rails 4 CookieStore по умолчанию шифрует куки:
If you have secret_key_base set, your cookies will be encrypted. This goes a step further than signed cookies in that encrypted cookies cannot be altered or read by users. This is the default starting in Rails 4.
Похоже, что нет способа отключить это с помощью параметров конфигурации, поэтому один из способов - не устанавливать 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.
Отвечает ли мой ответ на ваш вопрос? Если да, отметьте его как завершенное