Class: Aha::Auth::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/aha/auth/session.rb

Overview

Represents a validated session with user and session information

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(valid:, user_id: nil, session_id: nil, expires_at: nil, refreshed: false, new_session_token: nil, new_refresh_token: nil) ⇒ Session

Returns a new instance of Session.



9
10
11
12
13
14
15
16
17
# File 'lib/aha/auth/session.rb', line 9

def initialize(valid:, user_id: nil, session_id: nil, expires_at: nil, refreshed: false, new_session_token: nil, new_refresh_token: nil)
  @valid = valid
  @user_id = user_id
  @session_id = session_id
  @expires_at = expires_at
  @refreshed = refreshed
  @new_session_token = new_session_token
  @new_refresh_token = new_refresh_token
end

Instance Attribute Details

#expires_atObject (readonly)

Returns the value of attribute expires_at.



7
8
9
# File 'lib/aha/auth/session.rb', line 7

def expires_at
  @expires_at
end

#new_refresh_tokenObject (readonly)

Returns the value of attribute new_refresh_token.



7
8
9
# File 'lib/aha/auth/session.rb', line 7

def new_refresh_token
  @new_refresh_token
end

#new_session_tokenObject (readonly)

Returns the value of attribute new_session_token.



7
8
9
# File 'lib/aha/auth/session.rb', line 7

def new_session_token
  @new_session_token
end

#session_idObject (readonly)

Returns the value of attribute session_id.



7
8
9
# File 'lib/aha/auth/session.rb', line 7

def session_id
  @session_id
end

#user_idObject (readonly)

Returns the value of attribute user_id.



7
8
9
# File 'lib/aha/auth/session.rb', line 7

def user_id
  @user_id
end

Class Method Details

.from_claims(claims, refreshed: false, new_session_token: nil, new_refresh_token: nil) ⇒ Object

Create a valid session from decoded JWT claims



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/aha/auth/session.rb', line 33

def self.from_claims(claims, refreshed: false, new_session_token: nil, new_refresh_token: nil)
  new(
    valid: true,
    user_id: claims["sub"],
    session_id: claims["sid"],
    expires_at: claims["exp"] ? Time.at(claims["exp"]).utc : nil,
    refreshed: refreshed,
    new_session_token: new_session_token,
    new_refresh_token: new_refresh_token
  )
end

.invalidObject

Create an invalid session result



28
29
30
# File 'lib/aha/auth/session.rb', line 28

def self.invalid
  new(valid: false)
end

Instance Method Details

#refreshed?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/aha/auth/session.rb', line 23

def refreshed?
  @refreshed
end

#valid?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/aha/auth/session.rb', line 19

def valid?
  @valid
end