class ApiAuth

Attributes

userid[RW]

Public Instance Methods

auth_request(username, password) click to toggle source
# File lib/basis-band/api-auth.rb, line 13
def auth_request(username, password)
  u = URI.parse('https://app.mybasis.com/login')
  http = Net::HTTP.new(u.host, u.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  request = Net::HTTP::Post.new(u.request_uri)
  request.set_form_data({'next' => 'https://app.mybasis.com',
                        'submit' => 'Login',
                        'username' => username,
                        'password' => password})
  response = http.request(request)
  tok_match = response['set-cookie'].match /access_token=([0-9a-f]+);/
  tok_match[1]
end
get_user_id(access_token) click to toggle source
# File lib/basis-band/api-auth.rb, line 28
def get_user_id(access_token)
  u = URI.parse('https://app.mybasis.com/api/v1/user/me.json')
  http = Net::HTTP.new(u.host, u.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  request = Net::HTTP::Get.new(u.request_uri)
  request.add_field('X-Basis-Authorization', "OAuth %s" % access_token)
  json = JSON.parse(http.request(request).body)
  @userid = json['id']
end
login(username, password) click to toggle source
# File lib/basis-band/api-auth.rb, line 8
def login(username, password)
  token = auth_request(username, password)
  [token, get_user_id(token)]
end