我正在尝试通过Google对用户进行身份验证。我正在使用Vue的ASP.NET Core的ABP启动模板。
我已经登记在谷歌外部认证AuthConfigurer.cs在Web.Host:
if (bool.Parse(configuration["Authentication:Google:IsEnabled"]))
{
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});
}
我已将设置添加到Web.Host中的appsettings.json中,并在Secret Manager工具中创建了相应的机密(ClientId和ClientSecret)。
我已通过强制将API转换为SSL RequireHttpsAttribute。
我已经GoogleAuthProviderApi在[ProjectName] WebCoreModule.cs中注册了:
public override void PreInitialize()
{
Configuration.DefaultNameOrConnectionString = _appConfiguration.GetConnectionString(
MindbooksSEOConsts.ConnectionStringName
);
// Use database for language management
Configuration.Modules.Zero().LanguageManagement.EnableDbLocalization();
Configuration.Modules.AbpAspNetCore()
.CreateControllersForAppServices(
typeof(MindbooksSEOApplicationModule).GetAssembly()
);
ConfigureTokenAuth();
Configuration.Modules.Zero().UserManagement.ExternalAuthenticationSources.Add<GoogleAuthProviderApi>();
}
我不知道我在这里想念的东西,也不知道确切地期待着什么。
我以为,对api / TokenAuth / GetExternalAuthenticationProviders端点的调用至少会给我一个包含Google的列表,但是此请求返回的结果中包含一个空数组。
此外,对于OAuth提供程序(例如Google和Facebook),我对这种外部身份验证的范围还不太清楚。在我看来,您可以使用OAuth进行服务器端使用,在这种情况下,我不明白为什么您会通过API公开其中的一部分。或者您拥有适用于JavaScript的OAuth Web应用程序,在这种情况下,您不需要在自己的服务器上使用API端点,只需通过Web应用程序处理客户端的全部操作即可。
那么,外部身份验证API端点的确切目的是什么?是这样使您自己的服务器充当身份验证的代理吗?这样您就可以同时在客户端和服务器端使用外部(Google)API?
相关分类