Module: Nexmo::JWT

Defined in:
lib/nexmo/jwt.rb

Class Method Summary collapse

Class Method Details

.auth_token(payload, private_key) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/nexmo/jwt.rb', line 7

def self.auth_token(payload, private_key)
  payload[:iat] = iat = Time.now.to_i unless payload.key?(:iat) || payload.key?('iat')
  payload[:exp] = iat + 60 unless payload.key?(:exp) || payload.key?('exp')
  payload[:jti] = SecureRandom.uuid unless payload.key?(:jti) || payload.key?('jti')

  private_key = OpenSSL::PKey::RSA.new(private_key) unless private_key.respond_to?(:sign)

  ::JWT.encode(payload, private_key, 'RS256')
end