在简单的PHP RESTful API服务上进行身份验证

时间:2016-01-12 16:21:07

标签: php api authentication slim restful-authentication

我开发了一个基于PHP Slim Framework的非常简单的PHP API。它只做一些SQL查询并在我调用它时返回一个JSON对象。我通过CURL在另一个网站上访问此API。

我的问题是:由于API的URL现在基本上是公开的,保护它的最佳方法是什么?我的第一个想法是HTTP Basic Auth,它很简单,我可以通过http标头。但是我认为只要没有HTTPS连接就不安全(因为网站会以明文形式将用户名+密码传递给API)。此外,我还必须在我的网站上将凭证存储在PHP代码中,我认为这不是最佳选择。

我发现的下一个解决方案是基于令牌的身份验证,其优点是不必对每个请求进行授权,但实现起来可能更棘手。我也没有任何经验。

我也读过OAuth / OAuth2是要走的路。

事情是:我计划很快在移动应用程序上使用相同的API。

任何提示?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用WS-Security,即使是为SOAP API设计的,也可以使用REST API。它基本上是基于令牌的身份验证,在服务器端具有临时令牌和nonce文件。

如果您正在寻找示例,例如Symfony2 bundle,您有一些在PHP中实现此功能的库。

WS-Security是HTTP Basic Auth之间的中间关系 - 在没有HTTPS的情况下是不安全的 - 和OAuth - 实现起来可能更复杂。

答案 1 :(得分:0)

您可以使用此slim-jwt ,它将为jwt提供完全的冲击,你可以将它用作middelware