如何在.NET Core API中处理Google身份验证

时间:2019-07-10 13:23:14

标签: c# authentication asp.net-core asp.net-core-webapi google-authentication

我想对.net核心api实施google身份验证。前端内置在react中,因此他们将从api调用函数并通过该端点向Google进行身份验证。 我已将google身份验证添加到服务中。 我有一个触发Google身份验证的方法,您可以从下面的代码中看到。通过此操作,我可以显示google登录提供程序,我通过google登录,但我无法处理其余的操作。流程是什么,我该如何处理Google登录。但这不是Web应用程序,而是api,因此我需要处理api中的所有内容。

public void ConfigureServices(IServiceCollection services)
{       
    services.AddAuthentication(options => { 
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddGoogle(options => {
    IConfigurationSection googleAuthNSection = Configuration.GetSection("Authentication:Google");
    options.ClientId = googleAuthNSection["ClientId"];
        options.ClientSecret = googleAuthNSection["ClientSecret"];
        options.CallbackPath = new PathString("/signin-google");
        options.SignInScheme = "MainCookie";});
}


[HttpGet]
[AllowAnonymous]
[Route("google")]
public IActionResult SignInWithGoogle()
{
    var authenticationProperties = new Microsoft.AspNetCore.Authentication.AuthenticationProperties
        {
            RedirectUri = Url.Action("Index", "Home")
    };

    return Challenge(authenticationProperties, "Google");
}

0 个答案:

没有答案