我正在开发一个社交网站。该服务将在各种媒体上提供,例如:网络,iPhone,Facebook应用程序等。
我对这个应用程序的想法是让所有这些属性与一个中心点交互以获取和保存数据:API。然后,我的各种应用程序将与此API进行交互,发送GET
请求以获取某些数据; POST
提交一些数据的请求; DELETE
请求等等。
此API可通过网络访问,因此我需要一种方法来仅验证列入白名单的应用程序。此API永远不可用于第三方与第三方应用程序交互或构建第三方应用程序;它只是为了方便我的应用程序,所以我可以在各种平台上删除重新编码解决方案,并只关注逻辑(控制器,基本上)。
因此,OAuth是否适合用作上述场景的身份验证方法?
我对OAuth的了解并不是很好,但是如果它被认为是一个可行的解决方案,那么我在实施之前就会明确地阅读它。但据我所知,它适用于令牌。消费者(例如,我的网站)将从应用程序(此实例中的API)请求令牌,然后应用程序将返回令牌以在后续请求中使用。或者其他什么。
当请求进入我的应用程序时,我是否能够根据请求的应用程序接受/拒绝请求?即我可以拒绝访问不属于我自己的应用程序吗?如何区分应用程序?我是否会保留IP地址或网址的白名单,并根据传入的请求进行比较?
对此有任何帮助将非常感激。
答案 0 :(得分:1)
我认为OAuth不是解决您问题的最佳方案。当您计划将API提供给第三方时,OAuth非常棒,因为它允许在不向第三方提供用户凭据的情况下对用户进行身份验证。如果您完全控制API,则无需执行此操作。 你读它是一个好主意。 :)
答案 1 :(得分:1)
OAuth不是按照您希望的方式对某些应用程序进行身份验证的。
Juste创建您自己的私有身份验证方式,因为您是唯一了解您的API的人。别忘了在SSL中管理身份验证,一切都会好的!