Я застрял на втором этапе: получении токена аутентификации после получения параметр «код» из первого шага.
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);
Я искал и просматривал множество руководств, но ни одно из них не помогло. >
После этого я получаю ответ.
Код: Выделить всё
{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