Несколько областей проверки подлинности Google в .NET Core в зависимости от контроллера - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть веб-приложение.Это приложение позволяет пользователям зарегистрироваться / войти с помощью Google Auth согласно этому коду в Startup.cs

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = Configuration["ClientId"];
    googleOptions.ClientSecret = Configuration["CliSecret"];
    ...
});

. Все это прекрасно работает с готовой системой идентификации, поэтому я могу регистрировать пользователей.

Однако я также хочу, чтобы пользователи могли «подключаться» к другим службам Google с отдельными учетными записями после регистрации в отдельной области сайта.

Например, я могу захотетьпользователь для подключения своей учетной записи AdWords.Они будут аутентифицироваться в Google через поток, не связанный с идентификацией, и соответствующая информация (токен, токен обновления и т. Д.) Будет храниться независимо в БД (т. Е. Он не будет хранить «пользователя» в таблице AspNetUSers).

Могу ли я изменить область проверки подлинности в контроллере, прежде чем я сделаю свой первый звонок в Google?

Было бы неплохо использовать ту же службу проверки подлинности, но с некоторой дополнительной областью действияв этом случае.Это возможно?

В качестве альтернативы, есть другой раздел Google в Startup.cs ... может быть, как:

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = Configuration["ClientId"];
    googleOptions.ClientSecret = Configuration["CliSecret"];
    googleOptions.Scope.Add("https://www.googleapis.com/auth/adwords"); //*** THIS IS THE EXTRA SCOPE NEEDED ***
    ...
});
...