Я следую официальной документации 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, который может быть причиной этого?Будем благодарны за любые другие идеи.
Излишне говорить, что все параметры запроса содержат необходимые данные.
Спасибо