如何在 Asp.Net 核心Web Api和spa(Angular)中正确实现"Google Login"?



我在谷歌控制台上注册了一个应用程序,我得到了我的client_id和client_secret。
到目前为止,我检查的每个解决方案都没有在完成这项工作的任何级别上使用client_secret。
不过client_secret是用来做什么的??
我正在使用angularx-social-login进行水疗端......所以我用我的client_id从谷歌获取令牌,然后将其发送到我的后端服务器。我现在应该怎么做?
如何在后端验证我从谷歌获得的令牌?
通过"验证",我的意思是我如何确保令牌是使用我的 SPA 和我自己的 Web 应用程序client_id获得的?

>更新:感谢Mosia Thabo,这个答案帮助了我。谢谢大家。

在OAuth2中,有3方:服务器(Google(,客户端(您(和用户(您的用户(。client_secret用于安全环境中的客户端到服务器通信,其中"安全"意味着您不必向用户公开凭据。由于您使用的是在客户端公开其所有源代码的 SPA,因此您不能在该源代码中包含您的客户端密码,否则您的用户将能够伪装成您的服务器,并且他们将拥有对所有用户信息的完全访问权限。因此,您最有可能使用 OAuth2 工作流,例如仅依赖于client_id的密码授予和其他凭据(如属于用户的密码和用户名(。最好遵循完整的授权代码工作流,在该工作流中使用client_id并重定向用户以向服务器进行身份验证,这样就不必处理密码等敏感用户数据。

要验证访问或 ID 令牌,您必须将令牌发送到后端并在那里进行验证,或使用 Google 的tokeninfo端点。

Google有许多客户端想要使用其OAuth身份验证端点,并且为了让Google每次返回请求身份验证时都知道他们是谁,它为他们提供了一个唯一的ID(客户端ID(以便能够识别他们,他们使用他们提供的密码(client_secret(登录到该端点。

那些就像usernamepassword一样服务.

这里有一些有用的链接,可以帮助你用谷歌和 Asp.Net Web API配置OAuth:宾果游戏!

最新更新