Class: Otto::Security::SessionStrategy

Inherits:
AuthStrategy show all
Defined in:
lib/otto/security/authentication.rb

Overview

Session-based authentication strategy

Instance Method Summary collapse

Constructor Details

#initialize(session_key: 'user_id', session_store: nil) ⇒ SessionStrategy

Returns a new instance of SessionStrategy.



76
77
78
79
# File 'lib/otto/security/authentication.rb', line 76

def initialize(session_key: 'user_id', session_store: nil)
  @session_key = session_key
  @session_store = session_store
end

Instance Method Details

#authenticate(env, requirement) ⇒ Object



81
82
83
84
85
86
87
88
89
# File 'lib/otto/security/authentication.rb', line 81

def authenticate(env, requirement)
  session = env['rack.session']
  return failure('No session available') unless session

  user_id = session[@session_key]
  return failure('Not authenticated') unless user_id

  success(user_id: user_id, session: session)
end

#user_context(env) ⇒ Object



91
92
93
94
95
96
97
# File 'lib/otto/security/authentication.rb', line 91

def user_context(env)
  session = env['rack.session']
  return {} unless session

  user_id = session[@session_key]
  user_id ? { user_id: user_id } : {}
end