модуль ActionDispatch::Cookies::ChainedCookieJars
Включить в cookie-хранилище, чтобы разрешить цепочку, например, cookies.permanent.signed.
Открытые методы экземпляра
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 258 def encrypted @encrypted ||= EncryptedKeyRotatingCookieJar.new(self) end
Возвращает хранилище, которое автоматически зашифрует значения cookie перед отправкой клиенту и расшифрует их для чтения. Если cookie была скомпрометирована пользователем (или третьей стороной), вернётся nil.
Если config.action_dispatch.encrypted_cookie_salt и config.action_dispatch.encrypted_signed_cookie_salt установлены, устаревшие cookie, зашифрованные с помощью 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 224 def permanent @permanent ||= PermanentCookieJar.new(self) end
Возвращает хранилище, которое автоматически установит назначенным cookie срок действия через 20 лет. Пример:
cookies.permanent[:prefers_open_id] = true # => Set-Cookie: prefers_open_id=true; path=/; expires=Sun, 16-Dec-2029 03:24:16 GMT
Это хранилище предназначено только для записи. Вы будете читать постоянные cookie через обычный аксессор.
Это хранилище позволяет цепочку с подписанным хранилищем, поэтому вы можете установить постоянные, подписанные cookie. Примеры:
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 240 def signed @signed ||= SignedKeyRotatingCookieJar.new(self) end
Возвращает хранилище, которое автоматически сгенерирует подписанное представление значения cookie и проверит его при повторном чтении из cookie. Это полезно для создания cookie со значениями, которые пользователь не должен изменять. Если подписанный cookie был скомпрометирован пользователем (или третьей стороной), вернётся 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 264
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, чтобы избежать необходимости вводить новые хранилища cookie.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.