Spec-Zone.ru › Ruby on Rails 7.1

модуль ActionDispatch::Cookies::ChainedCookieJars

Включить в cookie-хранилище, чтобы разрешить цепочку, например, cookies.permanent.signed.

Открытые методы экземпляра

encrypted() Показать исходный код
# 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
permanent() Показать исходный код
# 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
signed() Показать исходный код
# 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
signed_or_encrypted() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API