我有一个网页应用程序,它做了大量的ajax请求与php服务器和数据库服务器。我还创建了一个iPhone应用程序和一个安卓应用程序,到目前为止,它们都是离线应用程序。
现在我想创建一个API,它将用于在web服务器和智能手机应用程序之间同步数据。我应该为此使用OAuth吗?我所读到的关于OAuth的内容-如果我想打开我的应用程序接口以供第三方应用程序使用,它似乎是被使用的。但在这里,我只想确保API和我自己的应用程序之间的数据安全传输。
谁能解释一下这件事?
发布于 2012-02-10 16:32:59
OAuth
的主要用途是使第三方应用程序有权访问网站上用户的私有资源,而无需向第三方应用程序提供用户凭据。例如,假设Twitter想要从您的Yahoo帐户中获取联系人列表。传统的方式是将你的用户名和密码提供给Twitter。但对于OAuth
,你给他们一个临时令牌(称为Access Token
),授权Twitter在一段有限的时间内访问你在雅虎上的联系人(直到这个令牌过期,或者你作为私有资源的所有者明确地撤销它)。
也就是说,OAuth
并不是要在网络上安全地传输数据。这是另一个故事,通常是使用SSL
实现的。即使您使用OAuth
,您也必须同时使用SSL
,以确保数据的发送和接收是安全的。
因此,在您的示例中,您必须了解API的用途。如果它是公共API,不向调用者提供任何私有数据,那么就不需要使用OAuth
。但是,如果该接口用于访问单个用户的私有资源,则可以考虑使用OAuth
。如果您选择实现OAuth
,您可能会在未来允许其他第三方应用程序访问您的接口,而无需担心。
发布于 2015-06-08 23:29:01
这在很大程度上取决于你如何保护你的API。你的API是否对公众开放,特别是对帖子urls?如果您的数据不是每个用户都应该看到的数据,那么如何检查用户凭据的身份验证?
最重要的是,我们应该避免通过网络共享用户名和密码,以始终检查身份验证。这意味着,您的API不应该需要用户名和密码来验证用户是否有效。这可以通过从移动设备或设备id或其他东西发送用户名和密码来完成。
在这种情况下,OAuth服务器就会派上用场。基本上,在一个URL上,用户将发送他的用户名和密码来获取他的访问令牌。一旦获得,我们就可以使用访问令牌来验证每个请求并采取必要的操作。
你可以参考我在Laravel5中使用bshaffer实现OAuth服务器的视频,这是最好的OAuth库之一。https://www.youtube.com/watch?v=0vGXbWdtjls
https://stackoverflow.com/questions/9224275
复制相似问题