2010-11-16 35 views
1

我正在开发一个社交网站。这项服务将可用于各种媒体,例如:网络,iPhone,Facebook应用程序等。OAuth对我的网站API是否可行?

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

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

因此,OAuth是否适合用作上述场景的身份验证方法?

我对OAuth的了解并不多,但如果它被认为是一种可行的解决方案,那么在实施之前,我显然会阅读它。但据我所知,它对令牌有效。消费者(例如我的网站)会从应用程序(此例中为API)请求令牌,然后应用程序将返回令牌以用于随后的请求。或者其他的东西。

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

对上述任何帮助将不胜感激。

+0

您是否考虑过实施消息认证码(MAC)?这就是我现在看到的大多数API(包括我的)所使用的。通过适当的实施,您可以接受/拒绝基于请求应用程序的请求,保留请求信息等。 – netcoder 2010-11-16 13:59:49

回答

1

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

Juste创建您自己的私人认证方式,因为您是唯一了解您的API的人。不要忘记在SSL中管理身份验证,一切都会好的!

+0

谢谢,JB Jansen。 – 2010-11-18 11:28:14

1

我不认为OAuth是您的问题的最佳解决方案。当您打算将API提供给第三方时,OAuth非常棒,因为它允许在不向第三方提供用户凭据的情况下对用户进行身份验证。如果你对API有完全的控制权,那就没有必要这样做了。 阅读有关它仍然是一个好主意。 :)

相关问题