Class: StandardId::Api::TokenManager
- Inherits:
-
Object
- Object
- StandardId::Api::TokenManager
- Defined in:
- lib/standard_id/api/token_manager.rb
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Instance Method Summary collapse
- #bearer_token ⇒ Object
- #create_device_session(account, device_id: nil, device_agent: nil) ⇒ Object
- #create_service_session(account, service_name:, service_version:, owner:, metadata: {}) ⇒ Object
- #generate_lookup_hash(token) ⇒ Object
-
#initialize(request) ⇒ TokenManager
constructor
A new instance of TokenManager.
- #verify_jwt_token(token: bearer_token) ⇒ Object
Constructor Details
#initialize(request) ⇒ TokenManager
Returns a new instance of TokenManager.
6 7 8 |
# File 'lib/standard_id/api/token_manager.rb', line 6 def initialize(request) @request = request end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
4 5 6 |
# File 'lib/standard_id/api/token_manager.rb', line 4 def request @request end |
Instance Method Details
#bearer_token ⇒ Object
32 33 34 35 36 |
# File 'lib/standard_id/api/token_manager.rb', line 32 def bearer_token return @bearer_token if defined?(@bearer_token) @bearer_token = StandardId::BearerTokenExtraction.extract(@request.headers["Authorization"]) end |
#create_device_session(account, device_id: nil, device_agent: nil) ⇒ Object
10 11 12 13 14 15 16 17 18 |
# File 'lib/standard_id/api/token_manager.rb', line 10 def create_device_session(account, device_id: nil, device_agent: nil) StandardId::DeviceSession.create!( account:, ip_address: StandardId::Utils::IpNormalizer.normalize(@request.remote_ip), device_id: device_id || SecureRandom.uuid, device_agent: device_agent || @request.user_agent, expires_at: StandardId::DeviceSession.expiry ) end |
#create_service_session(account, service_name:, service_version:, owner:, metadata: {}) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/standard_id/api/token_manager.rb', line 20 def create_service_session(account, service_name:, service_version:, owner:, metadata: {}) StandardId::ServiceSession.create!( account:, owner:, ip_address: StandardId::Utils::IpNormalizer.normalize(@request.remote_ip), service_name:, service_version:, metadata: || {}, expires_at: StandardId::ServiceSession.default_expiry ) end |
#generate_lookup_hash(token) ⇒ Object
42 43 44 |
# File 'lib/standard_id/api/token_manager.rb', line 42 def generate_lookup_hash(token) Digest::SHA256.hexdigest("#{token}:#{Rails.application.secret_key_base}") end |
#verify_jwt_token(token: bearer_token) ⇒ Object
38 39 40 |
# File 'lib/standard_id/api/token_manager.rb', line 38 def verify_jwt_token(token: bearer_token) StandardId::JwtService.decode_session(token) end |