Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OAuth:OAuth实现用例_Oauth - Fatal编程技术网

OAuth:OAuth实现用例

OAuth:OAuth实现用例,oauth,Oauth,我有一个webapp,它通过php服务器和数据库服务器执行大量ajax请求。我还创建了一个iPhone应用程序和一个Android应用程序,它们一直作为离线应用程序工作到现在 现在我想创建一个API,用于在web服务器和智能手机应用程序之间同步数据。我应该为此使用OAuth吗?我所读到的关于OAuth的内容-如果我想打开API供第三方应用程序使用,那么它似乎是被使用的。但在这里,我只想确保API和我自己的应用程序之间数据的安全传输 有人能解释一下吗?OAuth的主要用途是授权第三方应用访问网站上

我有一个webapp,它通过php服务器和数据库服务器执行大量ajax请求。我还创建了一个iPhone应用程序和一个Android应用程序,它们一直作为离线应用程序工作到现在

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


有人能解释一下吗?

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

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


因此,在您的例子中,您必须了解API的用途。如果它是公共API,不向调用方提供任何私有数据,则无需使用
OAuth
。如果API用于访问单个用户的私有资源,则可以考虑使用<代码> OAuth。如果您选择实现
OAuth
,您将来可能会允许其他第三方应用程序访问您的API,而无需担心。

很大程度上取决于您如何保护您的API。您的API是否对公众开放,特别是post URL?如果您的数据不是每个用户都应该看到的,那么您如何检查用户凭据的身份验证

最重要的是,我们应该避免通过网络共享用户名和密码,以便随时检查身份验证。这意味着您的API不需要用户名和密码来验证用户是否有效。您可以通过移动设备或设备id或其他方式发送用户名和密码

在这种情况下,OAuth服务器会出手相救。基本上,在一个URL上,用户将发送用户名和密码以获取访问令牌。一旦获得了访问令牌,我们就可以使用访问令牌来验证每个请求并采取必要的操作

您可以参考我使用bshaffer在Laravel5中实现OAuth服务器的视频,bshaffer是任何PHP框架对用户来说最好的OAuth库之一