oauth - Cloudfunction/Serverless OAuth2 客户端
问题描述
我是 OAuth2 和云功能/无服务器的新手。
所以我想知道创建云函数来处理 OAuth2 请求是否有意义。
我的想法:
- 用户向 API 网关发送身份验证请求(据我了解,以防止云功能滥用,或者应该如何防止这种情况?Cloudflare?)
- 网关将请求重定向到云功能
- 云功能将用户身份验证存储在数据库中
- 用户现在已通过身份验证。
- 经过身份验证的用户现在可以通过其他云功能请求实际数据,例如个人资料。
- 向用户响应数据。
这是对 OAuth 工作原理的正确理解吗?如果是这样,这是否有意义,或者通常的服务器处理 OAuth 会更便宜吗?
解决方案
是的,你所描述的应该有效。请注意,您需要保护您的云功能,除了 OAuth 之外,不要忘记配置您的功能到功能授权层(据我了解,您将使用更多云功能)。我认为这个过程可能会很痛苦,因为您需要为每个功能配置它。在这里您可以找到有关它的更多详细信息。
虽然,你所描述的应该可以工作,但我个人不会实现它,我会选择一个在Cloud Run上运行服务 的大使架构,比方说,它还包括安全层。出于以下几个原因,我不会选择您的架构计划:
1)我认为配置会更复杂,主要是因为我之前在说什么。
2)即使有可能并且人们这样做,我一般不会使用 Cloud Functions 来查询数据库,因为这是一个可能需要一些时间的过程,并且您的 Cloud Function 在某些特定情况下可能会超时。(也许如果在那一刻有很多持续的连接到您的数据库,它可能会导致高延迟)。
3) 在这样的“链式”系统中,维护和调试可能会稍微困难一些。
4) 我认为在流量非常大的情况下,基于云功能的架构可能会更昂贵。您可以使用定价计算器查看这一点。
总而言之,我认为它会起作用,但我不会这样做。
推荐阅读
- android - Kotlin - 用于 recyclerview 到“详细信息”片段的 onclicklistener
- python - 具有单次登录的 Windows 机器,多个用户需要推/拉到 1 个 GIT 克隆,如何?
- javascript - 使用 `waitForKeyElements` 和 JQuery `.on()` 有什么区别?
- javascript - 在超链接上平移会触发鼠标向上的超链接
- gnuplot - 在gnuplot中绘制图形时如何跳过COLUMN
- javascript - MongoDB:如何在带有时间戳输入的查询中按 15 分钟周期过滤?
- sql - 根据另一个表中的值更新一个表中的变量列
- sql - SQL 服务器子字符串
- amazon-web-services - 为什么 codebuild.sh 无法运行我的本地构建?
- vue.js - 如何在没有 webpack .net Core 3.1 Web 应用程序的情况下更改 veevalidate 语言