Spec-Zone.ru › Ruby on Rails 8.1

module ActionDispatch::Cookies::ChainedCookieJars

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

Общедоступные методы экземпляра

encrypted () Показать исходный код
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 274
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 234
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, поэтому можно устанавливать постоянные подписанные 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 253
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 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, чтобы избежать необходимости вводить новые хранилища cookie.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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