ASP.NET Core 2.1 Социальная аутентификация - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть приложение .net core 2.1, в котором у меня есть стандартный шаблон аутентификации электронной почты / пароля, а также позволяющий пользователям входить / регистрироваться с помощью Google / Facebook.

Я также использую EntityFramework ...

У меня есть рабочий процесс для инициирования вызова для обеих учетных записей социальных сетей, и я могу войти в систему, используя любую учетную запись. Это фрагмент метода ConfigureServices в моем файле Startup.cs.

После входа пользователя в системув их социальной учетной записи я хочу добавить некоторую дополнительную информацию в Identity

.AddFacebook(facebookOptions =>
        {
            facebookOptions.AppId = Configuration["AppSettings:FacebookSettings:AppId"];
            facebookOptions.AppSecret = Configuration["AppSettings:FacebookSettings:AppSecret"];

            //return the following fields
            facebookOptions.Fields.Add("first_name");
            facebookOptions.Fields.Add("last_name");
            facebookOptions.Fields.Add("email");
            facebookOptions.SaveTokens = true;
            facebookOptions.Events.OnTicketReceived = context =>
            {
                AddApplicationClaims(context);
                return Task.CompletedTask;
            };
        })
        .AddGoogle(googleOptions =>
        {
            googleOptions.ClientId = Configuration["AppSettings:GoogleSettings:ClientID"];
            googleOptions.ClientSecret = Configuration["AppSettings:GoogleSettings:ClientSecret"];
            googleOptions.SaveTokens = true;

            googleOptions.Events.OnTicketReceived = context =>
            {
                AddApplicationClaims(context);
                return Task.CompletedTask;
            };
        });

В событии OnTicketReceived метод добавления информации о претензиях заключается в том, где я хочу:- адрес электронной почты аутентифицированного пользователя находится в нашей системе (если он зарегистрирован) или нет ... в любом случае, я хочу иметь возможность проверить базу данных (EF) и либо добавить новую запись, либо получить существующую запись и некоторые претензииинформация для идентификации.

Мне просто интересно, можно ли получить доступ к базе данных EF изнутри ConfiМетод gureServices ... У меня проблемы с поиском чего-либо, что говорит, что я могу ...

, и если там нет возможности получить доступ к базе данных ... есть ли лучшее место, где я могу захватить поток пользователя послеаутентификация в социальных сетях, чтобы я мог проверять базу данных?

Заранее спасибо.

JS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...