2012-02-10 53 views
5

我有一个web服务器,它使用php服务器和数据库服务器做了很多ajax请求。我还创建了一个iPhone应用程序和一个Android应用程序,至今一直作为离线应用程序工作。OAuth:OAuth实现用例

现在我想创建一个API用于在Web服务器和智能手机应用之间同步数据。我应该使用OAuth吗?我读过关于OAuth的内容 - 它似乎是用于打开我的API供第三方应用程序使用的情况。但在这里,我只想确保API和我自己的应用程序之间的数据安全传输。

有人可以对此有所了解吗?

回答

4

OAuth的主要用途是使第三方应用程序有权访问网站上用户的私人资源,而无需向第三方应用程序提供用户凭据。例如,假设Twitter想要从您的雅虎帐户中获取联系人列表。传统的方式是给你的用户名和密码Twitter。但与OAuth,你给他们一个临时令牌(称为Access Token),其中授权Twitter雅虎有限的时间访问您的联系人(直到这个令牌过期或作为私人资源的所有者,你明确撤销它)。

也就是说,OAuth不是安全地在网络上传输数据。这是通常使用SSL实现的另一个故事。即使您使用OAuth,也必须使用SSL以确保数据安全地发送和接收。

所以在你的情况下,你必须看看API的用途。如果它是公共API,它不会向呼叫者提供任何私人数据,则不需要使用OAuth。但是,如果API用于访问个人用户的私人资源,则可以考虑使用OAuth。如果您选择实施OAuth,您可能会允许其他第三方应用程序在未来访问您的API,而不用担心。

0

好得多取决于你如何保护你的API。您的API是否向公众开放,特别是邮政网址?如果您的数据不是每个用户都应该看到的,那么您如何检查用户凭证的身份验证?

最重要的是我们应该避免通过电话共享用户名和密码来始终检查身份验证。这意味着,您的API不应该要求用户名和密码来验证用户是否有效。你可以通过从手机或设备ID或其他东西发送用户名和密码来做到这一点。

在这种情况下,OAuth服务器开始救援。基本上,在一个URL上,用户将发送他的用户名和密码以获得他的访问令牌。获得后,我们可以使用访问令牌来验证每个请求并采取必要的措施。

您可以使用bshaffer(这是任何PHP框架的最佳OAuth库之一)向用户推荐我在Laravel 5中实现OAuth服务器的视频。 https://www.youtube.com/watch?v=0vGXbWdtjls