没有服务器或使用 AWS lambda 的 Oauth2

Oauth2 without server or with AWS lambda

我正在尝试设计一个 Web 应用程序,该应用程序将通过其 API 从 Fitbit 查询数据并以不同的形式向用户显示。所有这些数据功能都在 Javascript 中实现,并在客户端(即在浏览器中)执行 - 不需要后端或存储。

然而,我正在为身份验证而苦苦挣扎。 Fitbit 提供 Oauth2,我有以下问题:

  1. 我必须有一个服务器端组件(提供回调)还是可能完全在客户端处理它?
  2. 如果仅 Fitbit 的 Ouath 需要此服务器端,有人有在 AWS Lambda 中执行此操作的示例吗?我想我只需要两个函数:一个用于启动身份验证,一个用于回调。但是我不确定 where/how 存储令牌以及如何管理用户会话。

您可以使用隐式流程在客户端 (JS) 执行 oAuth 授权,而无需任何服务器端代码。

然而,服务器端实现(授权代码流)和客户端实现(隐式流)之间几乎没有区别。列出了与 Fitbit-Implicit flow 相关的具体细节 here

您可以使用许多 oAuth2 客户端库之一来执行令牌交换。我更喜欢使用 oidc-client-js 进行 oAuth2 令牌交换(以及 OIDC 客户端实现)