Cloudfunction/Serverless OAuth2 客户端

Cloudfunction/Serverless OAuth2 Client

我是 OAuth2 的新手并且 cloud-functions/serverless。

所以我想知道创建云函数来处理 OAuth2 请求是否有意义。

我的想法:

  1. 用户向 API 网关发送身份验证请求(据我所知,这是为了防止滥用云功能,否则应该如何防止?Cloudflare?)
  2. 网关将请求重定向到云功能
  3. 云功能在数据库中存储用户身份验证
  4. 用户现已通过身份验证。
  5. 经过身份验证的用户现在可以通过其他云功能请求实际数据,例如个人资料。
  6. 向用户响应数据。

这是对 OAuth 工作原理的正确理解吗?如果是这样,这是否有意义,或者普通服务器处理 OAuth 会更便宜?

是的,您描述的应该有效。请注意,您需要 secure your Cloud functions and besides the OAuth, do not forget to configure your function-to-function authorisation layer (as I understood that you will use more Cloud Functions). I think this process can be a pain, as you will need to configure it for each function. Here 您可以找到有关它的更多详细信息。

虽然,你所描述的应该有效,但我个人不会实施它,我会选择 Ambassador architecture 服务 运行 Cloud Run ,比方说,这也包括安全层。由于以下几个原因,我不会选择您的架构计划:

1)我觉得配置起来会比较复杂,主要是我之前说的。

2) 尽管有可能并且人们这样做了,但我一般不会使用 Cloud Functions 来查询数据库,因为这是一个可能需要一些时间的过程,并且您的 Cloud Functions 在某些特定情况下可能会超时。 (也许如果在那一刻有很多正在进行的数据库连接,它可能会导致高延迟)。

3) 在这样的“链”系统中,维护和调试可能会稍微困难一些。

4) 我认为在流量非常高的情况下,基于云功能的架构可能会更昂贵。您可以使用 Pricing Calculator.

检查出来

综上所述,我认为它会起作用,但我不会这样做。