Rails 4.2: Как отключить шифрование для куки - PullRequest
0 голосов
/ 02 мая 2018

Я недавно обновил свое приложение rails 3.2 до rails 4.2. Я сталкиваюсь с проблемой того, что файлы cookie, установленные новыми рельсами 4.2, подписаны и зашифрованы, чего я не хочу, потому что мое приложение взаимодействует с другими приложениями rails 3. Я хочу восстановить старый способ создания файлов cookie в 4.2.

1 Ответ

0 голосов
/ 02 мая 2018

Это правда, что Rails 4 CookieStore шифрует куки по умолчанию:

Если вы установили secret_key_base, ваши куки будут зашифрованы. это идет дальше, чем подписанные куки в этих зашифрованных куки не может быть изменено или прочитано пользователями. Это по умолчанию, начиная с Рельсы 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

Таким образом, ваши куки будут храниться в подписанной банке, как в Rails 3.

...