class Spaceship::ConnectAPI::Token
Constants
- MAX_TOKEN_DURATION
maximum expiration supported by AppStore (20 minutes)
Attributes
issuer_id[R]
key_id[R]
text[R]
Public Class Methods
create(key_id: nil, issuer_id: nil, filepath: nil)
click to toggle source
# File spaceship/lib/spaceship/connect_api/token.rb, line 20 def self.create(key_id: nil, issuer_id: nil, filepath: nil) key_id ||= ENV['SPACESHIP_CONNECT_API_KEY_ID'] issuer_id ||= ENV['SPACESHIP_CONNECT_API_ISSUER_ID'] filepath ||= ENV['SPACESHIP_CONNECT_API_KEY_FILEPATH'] self.new( key_id: key_id, issuer_id: issuer_id, key: OpenSSL::PKey::EC.new(File.read(filepath)) ) end
new(key_id: nil, issuer_id: nil, key: nil)
click to toggle source
# File spaceship/lib/spaceship/connect_api/token.rb, line 32 def initialize(key_id: nil, issuer_id: nil, key: nil) @expiration = Time.now + MAX_TOKEN_DURATION @key_id = key_id @key = key @issuer_id = issuer_id header = { kid: key_id } payload = { iss: issuer_id, exp: @expiration.to_i, aud: 'appstoreconnect-v1' } @text = JWT.encode(payload, key, 'ES256', header) end
Public Instance Methods
expired?()
click to toggle source
# File spaceship/lib/spaceship/connect_api/token.rb, line 51 def expired? @expiration < Time.now end