Class: Aha::Auth::Session
- Inherits:
-
Object
- Object
- Aha::Auth::Session
- Defined in:
- lib/aha/auth/session.rb
Overview
Represents a validated session with user and session information
Instance Attribute Summary collapse
-
#expires_at ⇒ Object
readonly
Returns the value of attribute expires_at.
-
#new_refresh_token ⇒ Object
readonly
Returns the value of attribute new_refresh_token.
-
#new_session_token ⇒ Object
readonly
Returns the value of attribute new_session_token.
-
#session_id ⇒ Object
readonly
Returns the value of attribute session_id.
-
#user_id ⇒ Object
readonly
Returns the value of attribute user_id.
Class Method Summary collapse
-
.from_claims(claims, refreshed: false, new_session_token: nil, new_refresh_token: nil) ⇒ Object
Create a valid session from decoded JWT claims.
-
.invalid ⇒ Object
Create an invalid session result.
Instance Method Summary collapse
-
#initialize(valid:, user_id: nil, session_id: nil, expires_at: nil, refreshed: false, new_session_token: nil, new_refresh_token: nil) ⇒ Session
constructor
A new instance of Session.
- #refreshed? ⇒ Boolean
- #valid? ⇒ Boolean
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_at ⇒ Object (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_token ⇒ Object (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_token ⇒ Object (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_id ⇒ Object (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_id ⇒ Object (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 |
.invalid ⇒ Object
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
23 24 25 |
# File 'lib/aha/auth/session.rb', line 23 def refreshed? @refreshed end |
#valid? ⇒ Boolean
19 20 21 |
# File 'lib/aha/auth/session.rb', line 19 def valid? @valid end |