OAUTH2身份提供者如何通过服务器与客户端交互

问题描述 投票:0回答:1

我正在努力理解有关 OAuth2 的一些内容。假设我有 SPA、移动客户端和服务器,我想通过 google 帐户授权用户。 显然,移动应用程序位于手机上,而 SPA 托管在我控制的机器上的某个位置。

我按照此网站理解是否正确:https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/communication/authentication?tabs=android

通过移动客户端登录时:

  1. 用户打开手机客户端并点击“google登录”按钮

  2. 移动客户端向我的后端服务器发送http请求,建立TCP连接

  3. 后端服务器与 google auth 端点建立连接

    3.a) 在 asp.net 中,例如

    Request.HttpContext.AuthenticateAsync
    函数

  4. 用户以某种方式与谷歌登录网站进行交互

    4.a) 这是我的问题:这个重定向是如何工作的?当我的服务器建立此连接时,用户如何与 google auth 页面交互?

  5. 用户登录此谷歌页面后,谷歌返回到我的服务器一组声明,服务器可以使用这些声明来创建 JWT 令牌(也使用仅在我的服务器上的秘密)

  6. 此 JWT 令牌使用 TCP 连接从第 2 点返回到移动客户端。

我的理解正确吗? 当使用我控制的计算机上托管的 SPA 应用程序时,这种情况有什么不同? 我无法找到关于在任何时候建立哪些请求的解释,因为所有资源都通过现有的库来解释它,而这些库隐藏了大部分复杂性。

authentication mobile oauth-2.0 google-oauth
1个回答
0
投票

代码流程分为两部分:

  • 应用程序打开系统浏览器,使用

    front channel
    与 Google 交互。然后用户在那里进行身份验证。

  • 授权代码通过浏览器重定向返回到应用程序。然后应用程序将其发布到后端。然后后端向 Google 执行

    back channel
    请求,以将代码交换为令牌。

学习 OAUTH 消息

OAuth 提供了一个安全架构,正如您所指出的,了解它的工作原理非常重要,而不仅仅是调用供应商库的登录方法。

这是我关于 OAuth Messages 的文章,尽管该示例中没有使用后端。

还建议使用授权服务器来管理与 Google 的连接,并为您的应用程序和 API 颁发令牌。

© www.soinside.com 2019 - 2024. All rights reserved.