Module: AppleClassClient::Auth
- Defined in:
- lib/apple_class_client/auth.rb
Constant Summary collapse
- 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
"/session"
Class Method Summary collapse
Class Method Details
.get_session_token ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'lib/apple_class_client/auth.rb', line 16 def self.get_session_token = { method: :get, headers: AppleClassClient::Request::DEFAULT_HEADERS } request = Typhoeus::Request.new(AppleClassClient::Request.make_url(OAUTH_PATH), ) request.[:headers].merge!({ "Authorization" => oauth_header(request) }) request.run response = request.response AppleClassClient::Error.check_request_error(response, auth: true) parse_response response end |
.oauth_header(request) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/apple_class_client/auth.rb', line 26 def self.oauth_header(request) consumer = OAuth::Consumer.new( AppleClassClient.consumer_key, AppleClassClient.consumer_secret, site: AppleClassClient::Request.make_url(OAUTH_PATH), ) token = OAuth::AccessToken.new( consumer, AppleClassClient.access_token, AppleClassClient.access_secret, ) oauth_params = { consumer: consumer, realm: "ADM", token: token, } oauth_helper = OAuth::Client::Helper.new request, oauth_params.merge(request_uri: AppleClassClient::Request.make_url(OAUTH_PATH)) oauth_helper.header end |
.parse_response(response) ⇒ Object
46 47 48 49 |
# File 'lib/apple_class_client/auth.rb', line 46 def self.parse_response(response) body = JSON.parse response.response_body auth_session_token = body["auth_session_token"] end |