class Warden::JWTAuth::TokenEncoder

Encodes a payload into a JWT token, adding some configurable claims

Public Instance Methods

call(payload) click to toggle source

Encodes a payload into a JWT

@param payload [Hash] what has to be encoded @return [String] JWT

# File lib/warden/jwt_auth/token_encoder.rb, line 16
def call(payload)
  payload_to_encode = merge_with_default_claims(payload)
  JWT.encode(payload_to_encode, secret, algorithm)
end

Private Instance Methods

merge_with_default_claims(payload) click to toggle source

:reek: FeatureEnvy

# File lib/warden/jwt_auth/token_encoder.rb, line 24
def merge_with_default_claims(payload)
  now = Time.now.to_i
  payload['iat']  ||= now
  payload['exp']  ||= now + expiration_time
  payload['jti']  ||= SecureRandom.uuid
  payload
end