【问题标题】:Is OAuth viable for my website's API?OAuth 是否适用于我网站的 API?
【发布时间】:2010-11-16 23:03:22
【问题描述】:

我正在开发一个社交网站。该服务将通过各种媒介提供,例如:网络、iPhone、Facebook 应用程序等。

我对这个应用程序的想法是让所有这些属性与一个用于获取和保存数据的中心点交互:一个 API。然后我的各种应用程序将与这个 API 交互,发送一个GET 请求来获取一些数据;一个POST 请求提交一些数据; DELETE 请求等等。

此 API 可通过网络访问,因此我需要一种方法来仅对列入白名单的应用程序进行身份验证。此 API 将永远不可用于第三方与第三方交互或构建第三方应用程序;它只是为了方便我的应用程序,这样我就可以在各种平台上削减重新编码解决方案,只关注逻辑(本质上是控制器)。

那么,OAuth 是否适合作为上述场景的认证方式?

我对 OAuth 的了解不是很好,但如果它被认为是一个可行的解决方案,那么我显然会在实施之前阅读它。但据我所知,它适用于代币。消费者(例如,我的网站)将从应用程序(本例中的 API)请求令牌,然后应用程序将返回一个令牌以在后续请求中使用。什么的。

当请求进入我的应用程序时,我是否能够根据请求应用程序接受/拒绝请求? IE。我可以拒绝访问不属于我自己的应用程序吗?如何区分应用程序?我是否保留了 IP 地址或 URL 的白名单,并在传入请求时进行比较?

任何关于上述内容的帮助将不胜感激。

【问题讨论】:

  • 您是否考虑过实现消息验证码 (MAC)?这就是我现在看到的大多数 API 都可以使用的(包括我的)。通过适当的实现,您可以根据请求的应用程序接受/拒绝请求,保留请求信息等。

标签: php api oauth


【解决方案1】:

OAuth 并非旨在以您想要的方式验证某些应用程序。

只需创建您自己的私有身份验证方式,因为您是唯一了解您的 API 的人。不要忘记在 SSL 中进行身份验证,一切都会好起来的!

【讨论】:

    【解决方案2】:

    我认为 OAuth 不是解决您的问题的最佳解决方案。当您计划将您的 API 提供给第 3 方时,OAuth 非常棒,因为它允许在不向第 3 方提供用户凭据的情况下对用户进行身份验证。如果您对 API 有所有控制权,则无需这样做。 阅读它仍然是一个好主意。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-20
      • 2014-08-21
      • 2012-03-30
      • 2011-09-07
      • 2012-03-04
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      相关资源
      最近更新 更多