module AppleDEPClient::Auth
Constants
- OAUTH_PATH
Apple requires a quirky
OAuth
1.0a authentication to get a temporary X-ADM-Auth-Session key to make requests; this takes care of that
Public Class Methods
get_session_token()
click to toggle source
# File lib/apple_dep_client/auth.rb, line 16 def self.get_session_token options = { method: :get, headers: AppleDEPClient::Request::DEFAULT_HEADERS } request = Typhoeus::Request.new(AppleDEPClient::Request.make_url(OAUTH_PATH), options) request.options[:headers].merge!({ "Authorization" => oauth_header(request) }) request.run response = request.response AppleDEPClient::Error.check_request_error(response, auth: true) parse_response response end
oauth_header(request)
click to toggle source
# File lib/apple_dep_client/auth.rb, line 26 def self.oauth_header(request) consumer = OAuth::Consumer.new( AppleDEPClient.consumer_key, AppleDEPClient.consumer_secret, site: AppleDEPClient::Request.make_url(OAUTH_PATH), ) token = OAuth::AccessToken.new( consumer, AppleDEPClient.access_token, AppleDEPClient.access_secret, ) oauth_params = { consumer: consumer, realm: "ADM", token: token, } oauth_helper = OAuth::Client::Helper.new request, oauth_params.merge(request_uri: AppleDEPClient::Request.make_url(OAUTH_PATH)) oauth_helper.header end
parse_response(response)
click to toggle source
# File lib/apple_dep_client/auth.rb, line 46 def self.parse_response(response) body = JSON.parse response.response_body auth_session_token = body["auth_session_token"] end