Не была определена схема authenticationScheme, и не было найдено DefaultChallengeScheme - PullRequest
0 голосов
/ 20 июня 2019

Попытка добавить проверку токена Google в asp.Net Core 2.2 API, но получение этой ошибки, когда контроллер помечен как [Authorize]

Цель состоит в том, чтобы защитить некоторые функции веб-API путем проверки Access_Tokenиз заголовка запроса.Токен доступа генерируется из Google OAuth на стороне клиента и должен передаваться в API с каждым запросом.

Startup.cs

public void ConfigureServices(IServiceCollection services)
    ...
    services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddGoogle(options =>
    {
        options.ClientId = "[Client ID]";
        options.ClientSecret = "[Client secret]";
    });
    ...
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseAuthentication();

    app.UseMvc();
}

Получение следующей ошибки:

Произошло необработанное исключение при обработке запроса.InvalidOperationException: не указана схема authenticationScheme, и не найден DefaultChallengeScheme.

1 Ответ

0 голосов
/ 20 июня 2019

В соответствии с документацией вам не нужно указывать AuthenticationScheme для аутентификации Google

services.AddAuthentication().AddGoogle(options  =>  
{  
   ...
}); 

, поскольку значение OpenIdConnectDefaults.AuthenticationScheme равно OpenIdConnect, но Google ожидает Google,Вы можете использовать GoogleDefaults.AuthenticationScheme

...