在我的 API 中实现访问令牌架构
Implementing access token architecture in my API
我的应用程序逻辑(Android、iOS 和 Web)都写在我的服务器中。
由于事情变得复杂,我决定将我的服务器构建为 REST Web 服务,因此查询它将包含 header 中的逻辑。
我的登录流程非常简单,我尝试从 Facebook 复制 API:
- 用户登录 Facebook。
- 用户收到 Facebook 访问令牌
- 访问令牌与一些其他标识符一起发送到我的服务器
- 服务器与 Facebook 检查访问令牌对 Facebook 是否有效,以及其他标识符是否与 Facebook 上的标识符匹配。
- 服务器returns用户的访问令牌,他应该在每个查询中使用它直到它过期。
问题是我没有添加任何其他限制,例如端点限制(范围)和类似的东西,所以我的服务器生成的访问令牌授予您访问我的每个部分的权限 api。
我认为在这里发明轮子是愚蠢的,所以我正在寻找一个框架或通用解决方案,使我能够以简单的方式向访问令牌添加逻辑。
我阅读了有关 OAuth 的信息,但我担心它更多地是关于用户与其他用户共享,但我只想使用它是登录流程和范围保护器。
OAuth 可以吗?有 OAuth 的替代方案吗?
这在 OAuth 2.0 中是可能的,实际上是目标之一:您可以发布和使用具有特定 "scopes"(OAuth 2.0 概念)关联的访问令牌,这些令牌可能与客户端的权限相关有(例如 read/write、API A、API B)。
但是您需要从您自己的授权服务器颁发您自己的访问令牌。您可以允许用户使用他们的 Facebook 帐户登录到该授权服务器。
我的应用程序逻辑(Android、iOS 和 Web)都写在我的服务器中。
由于事情变得复杂,我决定将我的服务器构建为 REST Web 服务,因此查询它将包含 header 中的逻辑。
我的登录流程非常简单,我尝试从 Facebook 复制 API:
- 用户登录 Facebook。
- 用户收到 Facebook 访问令牌
- 访问令牌与一些其他标识符一起发送到我的服务器
- 服务器与 Facebook 检查访问令牌对 Facebook 是否有效,以及其他标识符是否与 Facebook 上的标识符匹配。
- 服务器returns用户的访问令牌,他应该在每个查询中使用它直到它过期。
问题是我没有添加任何其他限制,例如端点限制(范围)和类似的东西,所以我的服务器生成的访问令牌授予您访问我的每个部分的权限 api。
我认为在这里发明轮子是愚蠢的,所以我正在寻找一个框架或通用解决方案,使我能够以简单的方式向访问令牌添加逻辑。
我阅读了有关 OAuth 的信息,但我担心它更多地是关于用户与其他用户共享,但我只想使用它是登录流程和范围保护器。
OAuth 可以吗?有 OAuth 的替代方案吗?
这在 OAuth 2.0 中是可能的,实际上是目标之一:您可以发布和使用具有特定 "scopes"(OAuth 2.0 概念)关联的访问令牌,这些令牌可能与客户端的权限相关有(例如 read/write、API A、API B)。
但是您需要从您自己的授权服务器颁发您自己的访问令牌。您可以允许用户使用他们的 Facebook 帐户登录到该授权服务器。