class NetSuite::Passports::Token
Attributes
account[R]
consumer_key[R]
consumer_secret[R]
token_id[R]
token_secret[R]
Public Class Methods
new(account, consumer_key, consumer_secret, token_id, token_secret)
click to toggle source
# File lib/netsuite/passports/token.rb, line 6 def initialize(account, consumer_key, consumer_secret, token_id, token_secret) @account = account.to_s @consumer_key = consumer_key @consumer_secret = consumer_secret @token_id = token_id @token_secret = token_secret end
Public Instance Methods
passport()
click to toggle source
# File lib/netsuite/passports/token.rb, line 14 def passport { 'platformMsgs:tokenPassport' => { 'platformCore:account' => account, 'platformCore:consumerKey' => consumer_key, 'platformCore:token' => token_id, 'platformCore:nonce' => nonce, 'platformCore:timestamp' => timestamp, 'platformCore:signature' => signature, :attributes! => { 'platformCore:signature' => { 'algorithm' => 'HMAC-SHA256' } } } } end
Private Instance Methods
alphanumerics()
click to toggle source
# File lib/netsuite/passports/token.rb, line 46 def alphanumerics [*'0'..'9',*'A'..'Z',*'a'..'z'] end
nonce()
click to toggle source
# File lib/netsuite/passports/token.rb, line 42 def nonce @nonce ||= Array.new(20) { alphanumerics.sample }.join end
signature()
click to toggle source
# File lib/netsuite/passports/token.rb, line 30 def signature Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha256'), signature_key, signature_data)) end
signature_data()
click to toggle source
# File lib/netsuite/passports/token.rb, line 38 def signature_data "#{account}&#{consumer_key}&#{token_id}&#{nonce}&#{timestamp}" end
signature_key()
click to toggle source
# File lib/netsuite/passports/token.rb, line 34 def signature_key "#{consumer_secret}&#{token_secret}" end
timestamp()
click to toggle source
# File lib/netsuite/passports/token.rb, line 50 def timestamp @timestamp ||= Time.now.to_i end