尝试将Google令牌验证添加到asp.Net Core 2.2 API中,但在Controller标记为[Authorize]
时出现此错误
目标是通过验证请求标头中的Access_Token
来保护某些Web API功能。访问令牌是从客户端的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。
答案 0 :(得分:0)
According to documentation,您无需为Google身份验证指定AuthenticationScheme
services.AddAuthentication().AddGoogle(options =>
{
...
});
因为OpenIdConnectDefaults.AuthenticationScheme
的值为OpenIdConnect
,但Google期望Google
。您可以使用GoogleDefaults.AuthenticationScheme