class Zetto::Services::Cookie::FindSession
Public Class Methods
new(cookies)
click to toggle source
# File lib/zetto/services/cookie/find_session.rb, line 6 def initialize(cookies) unless cookies.class.to_s == "ActionDispatch::Cookies::CookieJar" raise ArgumentError.new(I18n.t('exseptions.need_cookie')) end @cookies = cookies end
Public Instance Methods
execute()
click to toggle source
# File lib/zetto/services/cookie/find_session.rb, line 13 def execute token_data = get_token_from_cookies if token_data.present? get_session_from_db(token_data) end rescue Exception => e Zetto::Services::Info.error_message I18n.t('exseptions.unknown_error', argument: 'Zetto::Services::Cookie::FindSession', current_method: __method__), e nil end
Private Instance Methods
get_session_from_db(token_data)
click to toggle source
# File lib/zetto/services/cookie/find_session.rb, line 29 def get_session_from_db(token_data) data_session = Zetto::Storage::ImpuretyData::Restore.new.execute(token_data) return nil if data_session.nil? data_token = get_data_of_token(data_session['token'], data_session['hash_step'], Zetto::Config::Params.session_length) session = Zetto::Storage::Session::FindBySession.new(data_token[:session_id]).execute if secret_hash_correct?(session, data_session['impurity_hash'], data_token[:ciphered_hash]) session end session end
secret_hash_correct?(session, impurity_hash, ciphered_hash)
click to toggle source
# File lib/zetto/services/cookie/find_session.rb, line 43 def secret_hash_correct?(session, impurity_hash, ciphered_hash) return false if session.nil? generate_hashing(session.algorithm, impurity_hash) == ciphered_hash end