如何在ASP.NET Boilerplate中设置社交登录?

我正在尝试通过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?

12345678_0001
浏览 179回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP