将客户端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)
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"];
});