2013-06-25 38 views
0

我刚刚创建API,并且正在为我的PHP网站制作API。现在无论如何,我现在正在做的是让我的脚本对一些执行所有处理的php文件执行cURL调用。又名即时通讯,例如对一个api文件做一个POST调用,它可以为该用户创建一个论坛帖子。现在对我来说重要的是我如何验证和检索哪个用户正在发送数据。那么我怎么知道cURL调用来自我的服务器?如何使用curl进行API身份验证

我打算做的是让我的服务器有一个密钥,该密钥在api调用中传递并由api文件验证。 api文件将确保密钥是正确的,然后采取任何用户名传入例如作出论坛帖子。我唯一担心的是,如果这个密钥是有史以来被发现im拧。我也希望能够让网站的工作让我们说作为一个Android应用程序,所以我想能够让curl调用让我们说(不知道这是否可能),并有一些身份验证密钥发送到我的服务器,但我不希望用户能够对包密钥进行包检查。

所以我的问题是我怎样才能安全地做卷曲调用,因为当我做一个卷曲调用它不会读取我设置的任何$ _SESSION值(除非我缺少一些东西)。任何帮助深表感谢。我也在考虑使用用户名和密码进行身份验证,每次唯一的问题是我有点想避免在每次执行api调用时都必须验证用户名和密码是否正确,因为这将是另一个必须执行的查询做完了。但如果这是推荐的方式或行业方式,那么生病就是这样。只是寻找如何处理一切正确的方式。

+0

你知道OAuth和OAuth2吗?对于PHP有一个很好的OAuth2实现:https://github.com/bshaffer/oauth2-server-php – Anorgan

+0

我这样做的方式是每个在Web界面上创建的用户都被分配一个移动密钥。当用户第一次运行移动应用程序时,它会询问用户名和密码。他们通过https发送到api,该api检查它们并返回该用户的用户密钥,随后将用户密钥传递给api,并保存完整的reauth。用户密钥每月过期一次。可能更好的解决方案,但它适用于我我也可以在不重置用户名/密码的情况下在命令中撤消它们。这不允许移动注册,但必须通过网络完成 – Dave

回答

0

然后你应该考虑实施OAuth

+0

我有一个问题,那么他们是唯一确定的我应该创建一个API的东西?因此一个卷曲电话。就像用户注册可以说,应该由我的控制器文件完成,该文件挂接到我的注册页面。或者,我应该允许我的控制器获取所有数据并通过cURL将其发送到api,以清理数据等并创建帐户。目前我最关心的是服务器验证api呼叫的最有效方式。目前和不久的将来,我所有的API调用都将由服务器完成,并通过ajax调用ajax只会检索数据) – user2443941

相关问题