Class: RailsIam::Authentication::Authenticator
- Inherits:
-
RailsIamService
- Object
- ApplicationService
- RailsIamService
- RailsIam::Authentication::Authenticator
- Includes:
- ConfigLoader
- Defined in:
- app/services/rails_iam/authentication/authenticator.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(request, raise_on_failure: true) ⇒ Authenticator
constructor
A new instance of Authenticator.
Methods included from ConfigLoader
#authentication_strategies, #authorization_rule_error, #cookie_options, #jwt_algorithm, #jwt_audience, #jwt_expiry, #jwt_issuer, #jwt_secret_key, #refresh_token_transport, #session_strategy, #user_class
Methods inherited from RailsIamService
Constructor Details
#initialize(request, raise_on_failure: true) ⇒ Authenticator
Returns a new instance of Authenticator.
8 9 10 11 12 |
# File 'app/services/rails_iam/authentication/authenticator.rb', line 8 def initialize(request, raise_on_failure: true) super() @request = request @raise_on_failure = raise_on_failure end |
Instance Method Details
#call ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/services/rails_iam/authentication/authenticator.rb', line 14 def call token = TokenExtractor.call(request) if token.blank? return nil unless @raise_on_failure raise RailsIam::Authentication::Exceptions::AuthenticationError, token_error end payload = JwtDecoder.call(token) user = User.find_by(id: payload[:sub]) raise Authentication::Exceptions::AuthenticationError, token_error unless user user rescue JwtDecoder::InvalidToken => e raise Authentication::Exceptions::AuthenticationError, e. # => token_error end |