Как использовать информацию токена из Google.Apis.Auth.OAuth2.UserCredential для создания файлов cookie в запросе, отправляемом на конечную точку webapi - PullRequest
0 голосов
/ 26 октября 2019

Из приложения 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 содержит аутентифицированный токен:

enter image description here

Я хотел бы вставить эту информацию токена в веб-запрос, сделанный с помощью HttpClient, для вызова конечной точки webapi, возможно ли это и как?

Я думаюзапрос должен использовать некоторые куки-файлы, чтобы сообщить серверу, что он аутентифицирован, но я не знаю, какие именно.

Конечная точка на стороне сервера проверяет, что пользователь аутентифицирован с помощью IdentityServer:

var result = await HttpContext.AuthenticateAsync(IdentityServer4.IdentityServerConstants.ExternalCookieAuthenticationScheme);
if (result?.Succeeded != true)
{
    throw new Exception("External authentication error");
}
...