63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/arux_app/api/auth.rb', line 63
def access_token(code)
data = {
:code => code,
:grant_type => "authorization_code",
:redirect_uri => self.redirect_uri,
:client_secret => self.client_secret,
:client_id => self.client_id
}
request = HTTPI::Request.new
request.url = "#{self.class.server_uri}/access_token"
request.body = data
request. = {'User-Agent' => USER_AGENT}
response = HTTPI.post(request)
if !response.error?
return AccessToken.new(:token => JSON.parse(response.body)['access_token'], :auth => self)
else
begin
resp_data = JSON.parse(response.body)
rescue
end
if resp_data and resp_data["error"] == "invalid_grant"
raise(API::Auth::InvalidGrantError.new(response.code, response.body))
elsif resp_data and resp_data["error"] == "invalid_client"
raise(API::Auth::InvalidClientError.new(response.code, response.body))
else
raise(API::Error.new(response.code, response.body))
end
end
end
|