Sha256: 0c033dfb3572d90e5a8f51c6e8b7b5eec8d1236593fc6e8858e483c16c917dae
Contents?: true
Size: 950 Bytes
Versions: 2
Compression:
Stored size: 950 Bytes
Contents
# frozen_string_literal: true require "jwt" require "securerandom" module Hotsock class Issuer def initialize(config) @config = config end def issue_token(claims = {}) headers = {typ: "JWT"} if @config.issuer_key_id headers[:kid] = @config.issuer_key_id end payload = {} now_i = Time.now.to_i if @config.issuer_aud_claim payload[:aud] = @config.issuer_aud_claim end if @config.issuer_iat_claim == true payload[:iat] = now_i end if @config.issuer_iss_claim payload[:iss] = @config.issuer_iss_claim end if @config.issuer_jti_claim == true payload[:jti] = SecureRandom.uuid end if @config.issuer_token_ttl.to_i > 0 payload[:exp] = now_i + @config.issuer_token_ttl.to_i end JWT.encode(payload.merge(claims), @config.issuer_key, @config.issuer_key_algorithm, headers) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hotsock-1.0.1 | lib/hotsock/issuer.rb |
hotsock-1.0.0 | lib/hotsock/issuer.rb |