Я работаю с oauth 2.0 в rails и пытаюсь обновить sh мой токен доступа, используя мой refre sh токен. Я получил токены с игровой площадкой oauth 2.0 (которая, используя данные вашего логина / приложения, заполняет запрос и показывает ответ). Я даже вижу правильный запрос на обновление токена.
Запрос, который работает с использованием их «игровой площадки» https://developer.intuit.com/app/developer/playground
POST /oauth2/v1/tokens/bearer?grant_type=refresh_token&refresh_token=*TOKEN CODE*
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Authorization: Basic *BASE64 ENCODED KEY+SECRET*
Здесь я пытаюсь имитировать c:
response = Faraday.post("https://sandbox.api.intuit.com/oauth2/v1/tokens/bearer?grant_type=refresh_token&refresh_token=#{qb_refresh_token}") do |req|
req.headers['Authorization'] = "Basic #{Base64.strict_encode64(client_id + ":" + client_secret)}"
req.headers['Accept'] = 'application/json',
req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
end
Мой ответ:
<Faraday::Response:0x00007fc4165859f8 @on_complete_callbacks=[], @env=#<Faraday::Env @method=:post @body="" @url=#<URI::HTTPS https://sandbox.api.intuit.com/oauth2/v1/tokens/bearer?grant_type=refresh_token&refresh_token=*REFRESH TOKEN CODE*> @request=#<Faraday::RequestOptions (empty)> @request_headers={"User-Agent"=>"Faraday v0.17.0", "Authorization"=>"Basic ENCODED BASE64", "Content-Type"=>"application/x-www-form-urlencoded", "Accept"=>"application/json, application/x-www-form-urlencoded", "Content-Length"=>"0"} @ssl=#<Faraday::SSLOptions verify=true> @response=#<Faraday::Response:0x00007fc4165859f8 ...> @response_headers={"date"=>"Thu, 30 Jan 2020 21:39:24 GMT", "content-type"=>"text/plain", "content-length"=>"0", "connection"=>"close", "server"=>"nginx"} @status=502 @reason_phrase="Code:BadGateway,Type:SYSTEM">>
Может ли это быть потому, что я получил авторизацию и токены, используя их приложение, но отправив запрос из другого? Если запросы одинаковые, но поступают из разных мест, могут ли результаты быть разными?