модуль ActionDispatch::Cookies::ChainedCookieJars
Включить в cookie-хранилище для возможности цепочки, например, cookies.permanent.signed.
Публичные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 239 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 205 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
# File actionpack/lib/action_dispatch/middleware/cookies.rb, line 221 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 245
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–2019 David Heinemeier Hansson
Licensed under the MIT License.