Ruby Single Sign On
#!/usr/bin/env ruby
require 'rubygems'
require 'ezcrypto'
require 'json'
require 'cgi'
require 'time'
module BookingBug
class TokenGenerator
attr_accessor :data
attr_accessor :options
BOOKINGBUG_COMPANY_ID = "{Your Company ID or Affiliate ID}"
BOOKINGBUG_SECURE_KEY = "{Your Secure Key}"
def initialize(options = {})
options.merge!({:expires => (Time.now + 3600).iso8601})
key = EzCrypto::Key.with_password BOOKINGBUG_COMPANY_ID, BOOKINGBUG_SECURE_KEY
@data = key.encrypt64(options.to_json).gsub(/\n/,'')
@data = CGI.escape(@data)
end
def to_s
@data
end
def decrypt
key = EzCrypto::Key.with_password BOOKINGBUG_COMPANY_ID, BOOKINGBUG_SECURE_KEY
key.decrypt64(CGI.unescape(@data))
end
end
end
token = BookingBug::TokenGenerator.new({
'first_name' => 'John',
'email' => 'smith@example.com',
'last_name' => 'Smith',
'mobile' => '0123456789'
})
puts token.to_s