module Cloudtasker::Authenticator

Manage token generation and verification

Constants

JWT_ALG

Algorithm used to sign the verification token

Public Instance Methods

config() click to toggle source

Return the cloudtasker configuration. See Cloudtasker#configure.

@return [Cloudtasker::Config] The library configuration.

# File lib/cloudtasker/authenticator.rb, line 16
def config
  Cloudtasker.config
end
verification_token() click to toggle source

A Json Web Token (JWT) which will be used by the processor to authenticate the job.

@return [String] The jwt token

# File lib/cloudtasker/authenticator.rb, line 26
def verification_token
  JWT.encode({ iat: Time.now.to_i }, config.secret, JWT_ALG)
end
verify(bearer_token) click to toggle source

Verify a bearer token (jwt token)

@param [String] bearer_token The token to verify.

@return [Boolean] Return true if the token is valid

# File lib/cloudtasker/authenticator.rb, line 37
def verify(bearer_token)
  JWT.decode(bearer_token, config.secret)
rescue JWT::VerificationError, JWT::DecodeError
  false
end
verify!(bearer_token) click to toggle source

Verify a bearer token and raise a `Cloudtasker::AuthenticationError` if the token is invalid.

@param [String] bearer_token The token to verify.

@return [Boolean] Return true if the token is valid

# File lib/cloudtasker/authenticator.rb, line 51
def verify!(bearer_token)
  verify(bearer_token) || raise(AuthenticationError)
end