Из приложения WPF пользователь аутентифицируется в Google с помощью этого кода:
using Google.Apis.Auth.OAuth2;
...
public void Authenticate()
{
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "myClientId",
ClientSecret = "myClientSecret"
},
new[] { "email", "openid" },
"user",
CancellationToken.None).Result;
}
Это работает, и объект UserCredential
содержит аутентифицированный токен:
Я хотел бы вставить эту информацию токена в веб-запрос, сделанный с помощью HttpClient
, для вызова конечной точки webapi, возможно ли это и как?
Я думаюзапрос должен использовать некоторые куки-файлы, чтобы сообщить серверу, что он аутентифицирован, но я не знаю, какие именно.
Конечная точка на стороне сервера проверяет, что пользователь аутентифицирован с помощью IdentityServer:
var result = await HttpContext.AuthenticateAsync(IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme);
if (result?.Succeeded != true)
{
throw new Exception("External authentication error");
}