модуль ActionDispatch::Cookies::ChainedCookieJars
Включите в хранилище куки, чтобы разрешить цепочку, например cookies.permanent.signed.
Общедоступные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 274 def encrypted @encrypted ||= EncryptedKeyRotatingCookieJar.new(self) end
Возвращает хранилище, которое автоматически зашифрует значения куки перед отправкой клиенту и расшифрует их при чтении. Если куки были изменены пользователем (или третьей стороной), вернется nil.
Если config.action_dispatch.encrypted_cookie_salt и config.action_dispatch.encrypted_signed_cookie_salt установлены, устаревшие куки, зашифрованные с помощью HMAC AES-256-CBC, будут прозрачно обновлены.
Для этого хранилища необходимо установить соответствующий секрет для проверки на secret_key_base вашего приложения.
Пример:
cookies.encrypted[:discount] = 45 # => Set-Cookie: discount=DIQ7fw==--K3n//8vvnSbGq9dA--7Xh91HfLpwzbj1czhBiwOg==; path=/ cookies.encrypted[:discount] # => 45
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 234 def permanent @permanent ||= PermanentCookieJar.new(self) end
Возвращает хранилище, которое автоматически установит заданным куки срок действия через 20 лет. Пример:
cookies.permanent[:prefers_open_id] = true # => Set-Cookie: prefers_open_id=true; path=/; expires=Sun, 16-Dec-2029 03:24:16 GMT
Это хранилище предназначено только для записи. Вы будете читать постоянные куки через обычный аксессор.
Это хранилище также позволяет объединять с подписанным хранилищем, поэтому вы можете устанавливать постоянные, подписанные куки. Примеры:
cookies.permanent.signed[:remember_me] = current_user.id # => Set-Cookie: remember_me=BAhU--848956038e692d7046deab32b7131856ab20e14e; path=/; expires=Sun, 16-Dec-2029 03:24:16 GMT
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 253 def signed @signed ||= SignedKeyRotatingCookieJar.new(self) end
Возвращает хранилище, которое автоматически сгенерирует подписанную версию значения куки и проверит её при повторном чтении из куки. Это полезно для создания куки с значениями, которые пользователь не должен изменять. Если подписанная куки была изменена пользователем (или третьей стороной), вернется nil.
Для этого хранилища необходимо установить соответствующий секрет для проверки на secret_key_base вашего приложения.
Пример:
cookies.signed[:discount] = 45 # => Set-Cookie: discount=BAhpMg==--2c1c6906c90a3bc4fd54a51ffb41dffa4bf6b5f7; path=/ cookies.signed[:discount] # => 45
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 281
def signed_or_encrypted
@signed_or_encrypted ||=
if request.secret_key_base.present?
encrypted
else
signed
end
end Возвращает хранилище signed или encrypted с предпочтением encrypted , если secret_key_base установлено. Используется ActionDispatch::Session::CookieStore для избежания необходимости введения новых хранилищ куки.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.