Class: Hooksmith::Verifiers::BearerToken
- Defined in:
- lib/hooksmith/verifiers/bearer_token.rb
Overview
Bearer token webhook verifier.
This verifier validates webhook requests using a simple bearer token in the Authorization header or a custom header.
Constant Summary collapse
- DEFAULT_HEADER =
Default header for bearer tokens
'Authorization'
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#enabled? ⇒ Boolean
Returns whether the verifier is properly configured.
-
#initialize(token:, header: DEFAULT_HEADER, strip_bearer_prefix: true, **options) ⇒ BearerToken
constructor
Initializes the bearer token verifier.
-
#verify!(request) ⇒ void
Verifies the bearer token in the request.
Constructor Details
#initialize(token:, header: DEFAULT_HEADER, strip_bearer_prefix: true, **options) ⇒ BearerToken
Initializes the bearer token verifier.
32 33 34 35 36 37 |
# File 'lib/hooksmith/verifiers/bearer_token.rb', line 32 def initialize(token:, header: DEFAULT_HEADER, strip_bearer_prefix: true, **) super(**) @token = token @header = header @strip_bearer_prefix = strip_bearer_prefix end |
Instance Method Details
#enabled? ⇒ Boolean
Returns whether the verifier is properly configured.
59 60 61 |
# File 'lib/hooksmith/verifiers/bearer_token.rb', line 59 def enabled? !@token.nil? && !@token.empty? end |
#verify!(request) ⇒ void
This method returns an undefined value.
Verifies the bearer token in the request.
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/hooksmith/verifiers/bearer_token.rb', line 44 def verify!(request) provided_token = extract_token(request) if provided_token.nil? || provided_token.empty? raise VerificationError.new('Missing authentication token', reason: 'missing_token') end return if secure_compare(@token, provided_token) raise VerificationError.new('Invalid authentication token', reason: 'invalid_token') end |