Sha256: 32d2f5e4f631425fc8653b60f3b909d78e5e33ef4d4d31aabdedd8d4fde86436
Contents?: true
Size: 1.17 KB
Versions: 3
Compression:
Stored size: 1.17 KB
Contents
module Twilio module JWT class BaseJWT # valid_until overrides ttl if specified def initialize(secret_key: nil, issuer: nil, subject: nil, nbf: nil, ttl: 3600, valid_until: nil) if secret_key.nil? raise ArgumentError, 'JWT does not have a signing key' end @secret_key = secret_key @issuer = issuer @subject = subject @algorithm = 'HS256' @nbf = nbf @ttl = ttl @valid_until = valid_until end def _generate_headers {} end def _generate_payload raise NotImplementedError end def headers headers = _generate_headers.clone headers['typ'] = 'JWT' headers['alg'] = @algorithm headers end def payload payload = _generate_payload.clone payload[:iss] = @issuer payload[:nbf] = @nbf || Time.now.to_i payload[:exp] = @valid_until.nil? ? Time.now.to_i + @ttl : @valid_until payload[:sub] = @subject unless @subject.nil? payload end def to_jwt ::JWT.encode payload, @secret_key, @algorithm, headers end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
twilio-ruby-5.1.0 | lib/twilio-ruby/jwt/jwt.rb |
twilio-ruby-5.0.0.alpha1 | lib/twilio-ruby/jwt/jwt.rb |
twilio-ruby-5.0.0 | lib/twilio-ruby/jwt/jwt.rb |