Почему API аутентификации токена Google всегда возвращает ошибку «Неверный запрос»?C#

Место общения программистов C#
Anonymous
Почему API аутентификации токена Google всегда возвращает ошибку «Неверный запрос»?

Сообщение Anonymous »

Я следую официальным документам Google, чтобы создать веб-запрос, позволяющий пользователям получать доступ к моему веб-приложению через аутентификацию Google.
Я застрял на втором этапе: получении токена аутентификации после получения параметр «код» из первого шага.
URI1 (используется для получения параметра «код»): https://accounts.google.com/o/oauth2/auth
URI2 (тот, который я использую на этом этапе): https://oauth2.googleapis.com/token
Это моя реализация:

Код: Выделить всё

var requestCode = Request.Query["code"].ToString();

var httpClient = new HttpClient();

var body = new List
{
new KeyValuePair("client_id", _googleSettings.ClientId),
new KeyValuePair("client_secret", _googleSettings.ClientSecret),
new KeyValuePair("redirect_uri", _googleSettings.RedirectUris[1]),
new KeyValuePair("grant_type", "authorization_code"),
new KeyValuePair("code", requestCode),
};

var content = new FormUrlEncodedContent(body);

var response = await httpClient.PostAsync(_googleSettings.TokenUri, content);
Ответ всегда неуспешный и возвращает ошибку 400: неверный запрос.
Я искал и просматривал множество руководств, но ни одно из них не помогло. >
После этого я получаю ответ.

Код: Выделить всё

    {StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
Date: Wed, 09 Aug 2023 20:25:03 GMT
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Vary: X-Origin
Vary: Referer
Vary: Origin,Accept-Encoding
Server: scaffolding on HTTPServer2
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Alt-Svc: h3=":443"; ma=2592000
Alt-Svc: h3-29=":443"; ma=2592000
Accept-Ranges: none
Transfer-Encoding: chunked
Expires: Mon, 01 Jan 1990 00:00:00 GMT
Content-Type: application/json; charset=utf-8
}}
РЕДАКТИРОВАТЬ: я нашел решение.
Я настроил два URI обратного вызова в приложении Google, но по неизвестным причинам. , Google не принял второй запрос в списке (выдал ошибку Bad Request). К счастью, в качестве последнего шанса я попробовал использовать первый зарегистрированный URI перенаправления, и это сработало.

Подробнее здесь: https://stackoverflow.com/questions/768 ... uest-error

Вернуться в «C#»