Как авторизовать пользователя с полученным токеном от IdentityServer? - PullRequest
0 голосов
/ 12 февраля 2019

Я создал проект IdentityServer (B) с этой конфигурацией:

new Client
{
    ClientId = "ro.client",
    AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
    ClientSecrets =
    {
        new Secret("secret".Sha256())
    },
    AllowedScopes = { "api1" }
}

И у меня есть проект B с его пользовательской страницей входа. Когда пользователь вводит свой пароль и пароль, я отправляю этоинформация для бэкэнда проекта B, и с помощью этого кода я могу получить токен с сервера идентификации - проект A:

var client = new HttpClient();
        var disco = await client.GetDiscoveryDocumentAsync(_configuration["App:Authority"]);
        if (disco.IsError)
        {
            throw new System.Exception("get info from identity server is failed.");
        }

        var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
        {
            Address = disco.TokenEndpoint,
            ClientId = "ro.client",
            ClientSecret = "secret",

            UserName = "bob",
            Password = "Pass123$",
            Scope = "api1"
        });

        var accessToken = tokenResponse.AccessToken;

Теперь я хочу добиться того, чтобы каким-то образом я сделал этого пользователя авторизованным и сохранил токен вcookie, поэтому, когда этот пользователь вызывает другое действие с атрибутом authorize, он не перенаправляется на страницу входа.Как мне этого добиться?

...