2

我正在使用需要我们使用 API KEY/PAIR 的 OAuth 1.0 API。此外,它给了我 3 个网址:

  • 请求令牌端点:/oauth/request_token
  • 授权端点:/oauth/authorize
  • 访问令牌端点:/oauth/access_token

以下是文档所述:


我们使用最新的 OAuth 1.0 协议规范 (RFC 5849) 来验证我们的 API 请求。我们使用 OAuth 1.0 是因为它是一个开放标准,并且我们将 OAuth 1.0 的“三足”客户端/用户/服务器协议流调整为“双足”客户端/服务器模型. 在我们为经过身份验证的客户端/服务器请求调整 OAuth 时,客户端既充当 API 客户端又充当用户(即,所请求资源的所有者)。因此,客户端不会被重定向到带有令牌验证器的客户端,而是充当用户并直接访问服务器以获取 OAuth 验证器。当客户端使用先前获得的验证器获得的访问令牌从服务器请求资源时,会发生可访问性检查。您可以重复使用访问令牌,直到它们过期(两小时后)。令牌过期后,您必须请求新的访问令牌。示例将进一步阐明这一点。


我想找到一个 PHP OAuth 库,它可以使用我访问第三方公司 API 的 API 要求。我真的不知道如何实现这一点。我目前的想法是对 facebook php api 进行逆向工程,但我不知道它是否使用 3 个端点。此外,一些帮助使其运行或将我引导到我自己可以弄清楚的资源会很棒。

谢谢!

** 注意:我发现了这个:点击这里这可以是我正在寻找的解决方案吗?

4

1 回答 1

2

Facebook 使用 OAuth 2.0,所以它的 API 是不可能的。在这里查看一些基本的 API 参考——例如 BitBucket、Twitter 和 Yahoo 都使用 v1.0a。

PHP 有一个OAuth 扩展,因此如果您正在构建自定义解决方案,您绝对应该从那里开始。您引用的库确实提供了两条腿的 OAuth,因此乍一看它确实是您的一个选项。最后一句话的免责声明:我没有使用过这个库,但是我检查了文档。可以在这里找到关于 UML 序列图的一个很好的解释。它只是一般的 OAuth,不是 PHP 特定的,但确实提供了很好的深入解释。这个 GitHub 存储库包含我的服务的可重用客户端- 如果您的客户端将是 PHP,您也可以从那里获得一些想法。

您的案例似乎很有趣,您的问题没有完整的答案。如果我是您,我会首先花时间检查您在“两条腿”部分中引用的 Google 代码oauth-php库背后的代码(不仅如此)。然后决定你是否应该使用这个库、另一个库或自定义实现。您可能还有其他可能会影响您的决定的要求/阻碍因素(我知道您希望从其他问题中推送一些大量数据。;))2 小时令牌是一个很好的性能优化,但它是否太长了认证/授权租约?

于 2013-07-06T20:38:02.013 回答