92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/arux_app/api/auth.rb', line 92
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}/oauth/token"
request.body = data
request. = {'User-Agent' => USER_AGENT}
response = HTTPI.post(request)
if !response.error?
AccessToken.new(
token: JSON.parse(response.body)['access_token'],
scope: JSON.parse(response.body)['scope'],
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
|