Sha256: 07250b837fb57b3a9a85688956077ebe71f51c44c7e343d718d2a80fa4ffdab1
Contents?: true
Size: 912 Bytes
Versions: 1
Compression:
Stored size: 912 Bytes
Contents
module Frikandel module LimitSessionLifetime extend ActiveSupport::Concern include SessionInvalidation included do append_before_filter :validate_session_timestamp end private def validate_session_timestamp if session.key?(:ttl) && session.key?(:max_ttl) && (reached_ttl? || reached_max_ttl?) on_invalid_session elsif !session.key?(:ttl) || !session.key?(:max_ttl) reset_session else # session timestamp is valid persist_session_timestamp end end def reached_ttl? session[:ttl] < Frikandel::Configuration.ttl.ago end def reached_max_ttl? session[:max_ttl] < Time.now end def persist_session_timestamp session[:ttl] = Time.now session[:max_ttl] ||= Frikandel::Configuration.max_ttl.since end def reset_session super persist_session_timestamp end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
frikandel-2.1.0 | lib/frikandel/limit_session_lifetime.rb |