IdentityServer4 Создание токена доступа из внешнего провайдера - PullRequest
0 голосов
/ 24 февраля 2020

Я использую IdentityServer4 с внешними поставщиками (Google Auth). Как создать токен доступа на основе успешного входа в Google? Я хотел бы ввести свои собственные претензии.

1 Ответ

0 голосов
/ 25 февраля 2020

При реализации внешнего входа (Google Auth) в Identity Server, после того, как Identity Server получит токен id от внешнего провайдера, он будет декодировать токен и получать утверждения пользователя, входить в систему, затем создавать собственные токены сервера идентификации и, наконец, возвращаться к ваше клиентское приложение.

Если вы хотите добавить пользовательские климы к токену, выданному Identity Server, вы c можете реализовать IProfileService :

public class MyProfileService : IProfileService
{
    public MyProfileService()
    { }

    public Task GetProfileDataAsync(ProfileDataRequestContext context)
    {

        var claims = new List<Claim>()
        {

            new Claim("TestKey", "TestValue")
        };
        context.IssuedClaims.AddRange(claims);
        return Task.CompletedTask;
    }

    public Task IsActiveAsync(IsActiveContext context)
    {
        // await base.IsActiveAsync(context);
        return Task.CompletedTask;
    }
}

Зарегистрироваться в DI:

services.AddTransient<IProfileService, MyProfileService>();
...