Yahoo OAuth2 get_token возвращает ошибку 500 (внутренняя ошибка сервера) - PullRequest
0 голосов
/ 20 сентября 2019

Я следую официальной документации Yahoo (https://developer.yahoo.com/oauth2/guide/openid_connect/getting_started.html). Я могу успешно получить код авторизации после входа пользователя в систему Yahoo. Я сейчас на шаге 3, пытаюсь обменять код авторизации на токен, но Yahoo сохраняетвозвращая HTTP-ошибку 500.

Чтобы обменять код авторизации для токена доступа от Yahoo, я использую следующий синтаксис RestSharp:

var client = new RestClient(provider.TokenUrl);
RestRequest request = new RestRequest() { Method = Method.POST };

request.AddParameter("client_id", codeModel.clientId, ParameterType.GetOrPost);
request.AddParameter("client_secret", provider.Secret, ParameterType.GetOrPost);
request.AddParameter("code", codeModel.code, ParameterType.GetOrPost);
request.AddParameter("grant_type", "authorization_code", ParameterType.GetOrPost);
request.AddParameter("redirect_uri", codeModel.redirectUri, ParameterType.GetOrPost);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");

var response = client.Execute<TokenResponseModel>(request);

responsede.data возвращает следующее: content:{"error": "ACCESS_TOKEN_GENERATION_FAILED", "error_description": "Ошибка генерации токена доступа"} StatusCode: InternalServerError

Официальная документация гласит: «Параметры запроса ниже передаются с использованием HTTP POST в теле запроса. Выоднако я могу также вместо этого отправлять параметры client_id и client_secret в заголовках HTTP ".

Я пробовал оба метода (clientid и secret как часть тела и как заголовок Basic Authorization) и оба возвращают одно и то жерезультат.

При отправке клиентуВ качестве секрета, являющегося частью заголовка Basic Authorization, оба вышеуказанных параметра заменяются следующим:

client.Authenticator = new RestSharp.Authenticators.HttpBasicAuthenticator(codeModel.clientId, provider.Secret);

Как указывалось ранее, единственное сообщение, возвращаемое Yahoo, это «внутренняя ошибка сервера».

Что-то не так с синтаксисом RestSharp, который может быть причиной этого?Будем благодарны за любые другие идеи.

Излишне говорить, что все параметры запроса содержат необходимые данные.

Спасибо

...