首页 > 解决方案 > Cloudfunction/Serverless OAuth2 客户端

问题描述

我是 OAuth2 和云功能/无服务器的新手。

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

我的想法:

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

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

标签: oauthoauth-2.0google-cloud-functionsserverless

解决方案


是的,你所描述的应该有效。请注意,您需要保护您的云功能,除了 OAuth 之外,不要忘记配置您的功能到功能授权层(据我了解,您将使用更多云功能)。我认为这个过程可能会很痛苦,因为您需要为每个功能配置它。在这里您可以找到有关它的更多详细信息。

虽然,你所描述的应该可以工作,但我个人不会实现它,我会选择一个在Cloud Run上运行服务 的大使架构,比方说,它还包括安全层。出于以下几个原因,我不会选择您的架构计划:

1)我认为配置会更复杂,主要是因为我之前在说什么。

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

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

4) 我认为在流量非常大的情况下,基于云功能的架构可能会更昂贵。您可以使用定价计算器查看这一点。

总而言之,我认为它会起作用,但我不会这样做。


推荐阅读