class ActionDispatch::Session::CacheStore
Action Dispatch CacheStore
Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения сессий. Это хранилище лучше всего подходит, если вы не храните в сессиях критически важные данные и вам не нужно, чтобы они сохранялись в течение длительного времени.
Параметры
-
cache— используемый кэш. Если он не указан, будет использоватьсяRails.cache. -
expire_after— время хранения сессии до автоматического истечения срока действия. По умолчанию используется параметр:expires_inкэша. -
check_collisions— проверять, не используются ли уже вновь сгенерированные идентификаторы сессий. Если по какой-либо причине 128 бит случайных данных недостаточно для защиты от коллизий, можно включить этот параметр, чтобы гарантировать, что вновь сгенерированные идентификаторы не используются. По умолчанию установлено значениеfalse, чтобы избежать дополнительных операций записи в кэш.
Открытые методы класса
# 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 Открытые методы экземпляра
# 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
Удаляет сессию из кэша.
# 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 Получает сессию из кэша.
# 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.