【问题标题】:ASP.NET Core Web API Google AuthenticationASP.NET Core Web API 谷歌身份验证
【发布时间】:2022-01-27 08:49:24
【问题描述】:

我正在使用 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部分的方法?

【问题讨论】:

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


    【解决方案1】:

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


    1.在 Google 中注册,获取 client_id 和 client_secret。

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

    AspNetCore WebAPI - Google Authentication

    3.从谷歌获取access_token

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

    【讨论】:

    • 嗯,这是我在大多数在线指南中不理解的部分,为什么我需要在全局级别添加 Google 身份验证,而我只需要一个功能,即验证是否Google 电子邮件 ID 是否属于有效用户。发布所有内容都将通过我创建的自定义 JWT 进行身份验证。
    猜你喜欢
    • 2022-11-21
    • 2016-12-22
    • 2018-01-28
    • 2017-11-24
    • 2015-04-20
    • 2014-05-08
    • 2014-05-03
    • 2020-07-27
    • 2018-03-15
    相关资源
    最近更新 更多