class Warden::Cognito::TestHelpers

Attributes

jwk[R]

Public Class Methods

auth_headers(headers, user, pool_identifier = Warden::Cognito.config.user_pools.first.identifier, claims = {}) click to toggle source
# File lib/warden/cognito/test_helpers.rb, line 15
def auth_headers(headers, user, pool_identifier = Warden::Cognito.config.user_pools.first.identifier,
                 claims = {})
  headers.merge(Authorization: "Bearer #{generate_token(user, pool_identifier, claims)}")
end
local_issuer() click to toggle source
# File lib/warden/cognito/test_helpers.rb, line 20
def local_issuer
  'local_issuer'
end
setup() click to toggle source
# File lib/warden/cognito/test_helpers.rb, line 11
def setup
  Warden::Cognito.config.jwk = { key: jwk, issuer: local_issuer }
end

Private Class Methods

generate_token(user, pool_identifier, claims = {}) click to toggle source
# File lib/warden/cognito/test_helpers.rb, line 26
def generate_token(user, pool_identifier, claims = {})
  payload = {
    sub: user.object_id,
    "#{identifying_attribute}": user.cognito_id,
    iss: "#{pool_identifier}-#{local_issuer}",
    jti: SecureRandom.uuid,
    exp: 1.hour.from_now.to_i
  }.merge(claims)
  headers = { kid: jwk.kid }
  JWT.encode(payload, jwk.keypair, 'RS256', headers)
end
identifying_attribute() click to toggle source
# File lib/warden/cognito/test_helpers.rb, line 38
def identifying_attribute
  Warden::Cognito.config.identifying_attribute
end