Class: JwtAuthEngine::RefreshTokenService

Inherits:
BaseService
  • Object
show all
Defined in:
app/services/jwt_auth_engine/refresh_token_service.rb

Overview

Validates refresh tokens and resolves the associated auth model.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseService

#failure, #success

Constructor Details

#initialize(refresh_token:) ⇒ RefreshTokenService

Returns a new instance of RefreshTokenService.



8
9
10
11
# File 'app/services/jwt_auth_engine/refresh_token_service.rb', line 8

def initialize(refresh_token:)
  @refresh_token = refresh_token
  super()
end

Instance Attribute Details

#refresh_tokenObject (readonly)

Returns the value of attribute refresh_token.



6
7
8
# File 'app/services/jwt_auth_engine/refresh_token_service.rb', line 6

def refresh_token
  @refresh_token
end

Instance Method Details

#callObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/services/jwt_auth_engine/refresh_token_service.rb', line 13

def call
  return failure(error: 'refresh_token is required.') if refresh_token.blank?

  success(JwtAuthEngine.auth_model_name => auth_model_instance_from_token)
rescue JwtAuthEngine::TokenExpired
  failure(error: 'Refresh token has expired.')
rescue JwtAuthEngine::InvalidToken
  failure(error: 'Invalid refresh token.')
rescue JwtAuthEngine::InvalidTokenType
  failure(error: 'Refresh token expected')
rescue ActiveRecord::RecordNotFound
  failure(error: "#{JwtAuthEngine.auth_model_name.to_s.humanize} not found.")
end