Class: Spikard::JwtConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/config.rb

Overview

JWT authentication configuration.

Validates JWT tokens using the specified secret and algorithm. Tokens are expected in the Authorization header as “Bearer <token>”.

Supported algorithms:

  • HS256, HS384, HS512 (HMAC with SHA)

  • RS256, RS384, RS512 (RSA signatures)

  • ES256, ES384, ES512 (ECDSA signatures)

  • PS256, PS384, PS512 (RSA-PSS signatures)

Examples:

jwt = JwtConfig.new(
  secret: 'your-secret-key',
  algorithm: 'HS256',
  audience: ['api.example.com'],
  issuer: 'auth.example.com',
  leeway: 30
)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(secret:, algorithm: 'HS256', audience: nil, issuer: nil, leeway: 0) ⇒ JwtConfig

Returns a new instance of JwtConfig.

Parameters:

  • secret (String)

    Secret key for JWT validation

  • algorithm (String) (defaults to: 'HS256')

    JWT algorithm (default: “HS256”)

  • audience (Array<String>, nil) (defaults to: nil)

    Expected audience claim(s)

  • issuer (String, nil) (defaults to: nil)

    Expected issuer claim

  • leeway (Integer) (defaults to: 0)

    Time leeway in seconds for exp/nbf/iat claims (default: 0)



81
82
83
84
85
86
87
# File 'lib/spikard/config.rb', line 81

def initialize(secret:, algorithm: 'HS256', audience: nil, issuer: nil, leeway: 0)
  @secret = secret
  @algorithm = algorithm
  @audience = audience
  @issuer = issuer
  @leeway = leeway
end

Instance Attribute Details

#algorithmObject

Returns the value of attribute algorithm.



74
75
76
# File 'lib/spikard/config.rb', line 74

def algorithm
  @algorithm
end

#audienceObject

Returns the value of attribute audience.



74
75
76
# File 'lib/spikard/config.rb', line 74

def audience
  @audience
end

#issuerObject

Returns the value of attribute issuer.



74
75
76
# File 'lib/spikard/config.rb', line 74

def issuer
  @issuer
end

#leewayObject

Returns the value of attribute leeway.



74
75
76
# File 'lib/spikard/config.rb', line 74

def leeway
  @leeway
end

#secretObject

Returns the value of attribute secret.



74
75
76
# File 'lib/spikard/config.rb', line 74

def secret
  @secret
end