ASP.NET Core Web API 谷歌身份验证

Asi*_*kir 6 c# asp.net google-oauth asp.net-core asp.net-core-webapi

我正在使用 ASP.NET Core WebAPI (.NET 6.0)

我想使用 Google 在https://developers.google.com/identity/gsi/web上共享的指南来实施 Google 身份验证

我对该过程的理解是 - 我从我的 Web 客户端 (VueJS) 向 Google 请求 JWT - 将 JWT 发送到 WebAPI 进行验证。

为了进行验证,我似乎需要根据https://developers.google.com/identity/sign-in/web/backend-auth上共享的指南编写一些代码。

然后,我使用数据库中存储的详细信息、角色信息和声明为用户创建一个新的 JWT,并将其发送回客户端。

客户端将新的 JWT 保存到本地存储,并为每个新的 API 请求持续发送它。

整个过程感觉有点像重新发明轮子,有没有更标准的方法来处理WebAPI部分?

Jas*_*Pan 0

我认为您对谷歌身份验证的理解是正确的。关于使用 Google 身份验证的 webapi 的最佳实践也应该是相同的。


1. 在 Google 中注册您的帐户,获取 client_id 和 client_secret。

2. 在.Net core中添加Identity、Authentication、Google服务,如下。并将属性 [Authorize()] 添加到您想要保护的 API。

AspNetCore WebAPI - 谷歌身份验证

3.access_token从谷歌获取。

4.access_token访问 webapi 时附加在每个 httprequest 中。

  • 好吧,这是我在大多数在线指南中不理解的部分,为什么我需要在全局级别添加 Google 身份验证,而我只需要它的一个功能,即身份验证,它将验证 Google 电子邮件 ID 是否有效用户与否。发布所有内容都将从我创建的自定义 JWT 进行身份验证。 (4认同)