访问受 OAuth 安全保护的 Rest 服务的最佳方式是什么?

What is the best way to access Rest services that secured with OAuth security?

我想访问其他供应商编写的 REST Web 服务。但问题是 OAuth 安全性。我从他们那里得到了用户名、密码、消费者密钥和消费者秘密。

首先我调用一个服务来获取刷新令牌。这是回应

{
   "scope": "PRODUCTION",
   "token_type": "bearer",
   "expires_in": 3148,
   "refresh_token": "315381713fc905a8c5f586d5145bd84",
   "access_token": "46ed281862dc48d2d46372fc2e84e5"
}

获得了 refresh_token 的过期时间。我必须将此令牌保留在数据库或内存中直到它过期,并且仅在该刷新令牌过期后再次调用此服务以获取刷新令牌。

我不知道如何将此刷新和访问令牌保存在我身边(数据库或内存)。请帮助我找到访问此服务的更好方法。

在大多数情况下,您希望访问和刷新令牌的保留时间长于您的申请流程。换句话说,您不想再次重新验证。这就是为什么将令牌保存在持久性存储(数据库、文件等)中会更好。

您可以使用 Java 的现有 oAuth 客户端来简化您的代码。一些流行的例子是:

oAuth 结果似乎是来自 oAuth 服务器的标准 JSON 结果。因此配置其中一个库应该不会出现任何问题。