Spec-Zone.ru › Ruby on Rails 8.1

class ActionDispatch::Session::CacheStore

Родительский класс:
ActionDispatch::Session::AbstractSecureStore

Action Dispatch CacheStore

Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения сессий. Это хранилище лучше всего подходит, если вы не храните в сессиях критически важные данные и вам не нужно, чтобы они сохранялись в течение длительного времени.

Параметры

  • cache — используемый кэш. Если он не указан, будет использоваться Rails.cache.

  • expire_after — время хранения сессии до автоматического истечения срока действия. По умолчанию используется параметр :expires_in кэша.

  • check_collisions — проверять, не используются ли уже вновь сгенерированные идентификаторы сессий. Если по какой-либо причине 128 бит случайных данных недостаточно для защиты от коллизий, можно включить этот параметр, чтобы гарантировать, что вновь сгенерированные идентификаторы не используются. По умолчанию установлено значение false, чтобы избежать дополнительных операций записи в кэш.

Открытые методы класса

new (app, options = {}) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 27
def initialize(app, options = {})
  @cache = options[:cache] || Rails.cache
  options[:expire_after] ||= @cache.options[:expires_in]
  @check_collisions = options[:check_collisions] || false
  super
end
Вызывает метод суперкласса ActionDispatch::Session::Compatibility::new

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

delete_session (env, sid, options) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 54
def delete_session(env, sid, options)
  @cache.delete(cache_key(sid.private_id))
  @cache.delete(cache_key(sid.public_id))
  generate_sid
end

Удаляет сессию из кэша.

find_session (env, sid) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 35
def find_session(env, sid)
  unless sid && (session = get_session_with_fallback(sid))
    sid, session = generate_sid, {}
  end
  [sid, session]
end

Получает сессию из кэша.

write_session (env, sid, session, options) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 43
def write_session(env, sid, session, options)
  key = cache_key(sid.private_id)
  if session
    @cache.write(key, session, expires_in: options[:expire_after])
  else
    @cache.delete(key)
  end
  sid
end

Сохраняет сессию в кэше.

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

Spec-Zone.ru

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