Class: Authralia::AuthenticatedSession::Creation

Inherits:
Base
  • Object
show all
Defined in:
lib/authenticated_session/creation.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource, controller) ⇒ Creation

Returns a new instance of Creation.



4
5
6
7
# File 'lib/authenticated_session/creation.rb', line 4

def initialize(resource, controller)
  @resource = resource
  @controller = controller
end

Instance Method Details

#callObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/authenticated_session/creation.rb', line 9

def call
  session_guid = SecureRandom.uuid
  browser_guid = SecureRandom.uuid
  resource_identifier = build_resource_identifier(@resource)

  handler = get_session_handler(@resource)
  sessions = filter_sessions(handler.value)

  add_session(
    @resource,
    {
      guid: session_guid,
      browser_guid: @controller.send(:cookies)[:browser_guid],
      login_at: Time.now.utc,
      login_ip: @controller.request.ip,
      host: @controller.request.host,
      user_agent: @controller.request.user_agent,
      expires_at: Time.now.utc + Authralia.expires_in.hours,
      is_accepted: sessions.size.zero?,
      new_session_guids: []
    }
  )

  response(
    status: SUCCESS,
    payload: {
      browser_guid: browser_guid,
      session_identifier: "#{resource_identifier}##{session_guid}"
    }
  )
end