Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将客户端google登录传输到ASP.NET服务器端_Asp.net_Reactjs_Oauth 2.0_Asp.net Identity_Google Signin - Fatal编程技术网

将客户端google登录传输到ASP.NET服务器端

将客户端google登录传输到ASP.NET服务器端,asp.net,reactjs,oauth-2.0,asp.net-identity,google-signin,Asp.net,Reactjs,Oauth 2.0,Asp.net Identity,Google Signin,我正在使用react google loginlibrary让用户通过google在客户端登录我的应用程序,它工作正常,并返回令牌和配置文件信息 <GoogleLogin clientId="XXXX.apps.googleusercontent.com" buttonText="Login" onSuccess={responseGoogle} onFailure={responseGoogle} cookiePolicy=

我正在使用
react google login
library让用户通过google在客户端登录我的应用程序,它工作正常,并返回令牌和配置文件信息

  <GoogleLogin
      clientId="XXXX.apps.googleusercontent.com"
      buttonText="Login"
      onSuccess={responseGoogle}
      onFailure={responseGoogle}
      cookiePolicy={'single_host_origin'}
  />

 const responseGoogle = (response) => {
     console.log(response);
 }

但是,我不知道如何将此成功登录传输到asp.net服务器端。如何使用google发送的令牌在服务器端登录用户?我想在两种情况下这样做:(a)系统中的电子邮件与gmail不匹配,(b)系统中的电子邮件与gmail匹配。非常感谢您的帮助。

对身份验证过程的一些小误解。您可以通过以下两种方式完成:

  • (谷歌登录)
  • (Microsoft.AspNetCore.Authentication.Google)
但您试图将它们混合在一起,这是可能的,但不是很有用,因为处理令牌过期比较困难,而且客户端的作用域由于安全原因受到限制

您需要按照下面的说明来实现服务器端OAuth,而不需要使用
react google login


  • 您在服务器端使用什么样的身份验证机制?通常,身份验证将在服务器端进行,这将从身份验证程序获取JWT令牌,并将其返回到前端。@GlennvanAcker感谢您的评论。事实上,我做到了。但是,从前端我该怎么处理它呢?我是否将它与每个请求一起发送到服务器?我不清楚。是的,据我所知,您需要将其包括在您的请求中,因为您将使用它保护您的控制器操作,它需要能够验证您的客户端。它实际上是通过google进行身份验证的客户端,但它需要这样做才能保护您的API。否则,任何人都可以直接与API对话。
    services.AddAuthentication()
        .AddGoogle(options =>
        {
            IConfigurationSection googleAuthNSection = 
                Configuration.GetSection("Authentication:Google");
    
            options.ClientId = googleAuthNSection["ClientId"];
            options.ClientSecret = googleAuthNSection["ClientSecret"];
        });