Skip to content
Snippets Groups Projects
token.rb 967 B
Newer Older
  • Learn to ignore specific revisions
  • module JSONWebToken
    
      class Token
        attr_accessor :issuer, :subject, :audience, :id
        attr_accessor :issued_at, :not_before, :expire_time
    
        def initialize
          @id = SecureRandom.uuid
          @issued_at = Time.now
    
          # we give a few seconds for time shift
    
          @not_before = issued_at - 5.seconds
    
          # default 60 seconds should be more than enough for this authentication token
    
          @expire_time = issued_at + 1.minute
    
        end
    
        def []=(key, value)
    
        end
    
        def encoded
          raise NotImplementedError
        end
    
        def payload
    
        end
    
        private
    
        def default_payload
          {
            jti: id,
            aud: audience,
            sub: subject,
            iss: issuer,
            iat: issued_at.to_i,
            nbf: not_before.to_i,
            exp: expire_time.to_i
          }.compact
        end
      end
    
    Kamil Trzcinski's avatar
    Kamil Trzcinski committed
    end