繁体   English   中英

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

[英]Authentication on a simple PHP RESTful API service

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

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

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

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

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

有什么提示吗? 谢谢!

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

如果要查找示例,则有一些用PHP实现此功能的库,例如Symfony2 bundle

WS-Security是介于HTTP Basic Auth和OAuth之间的中间角色,HTTP Basic Auth在没有HTTPS的情况下是不安全的,而OAuth的实现可能更复杂。

您可以使用此slim-jwt ,它将为jwt提供完整的声明,您可以将其用作中间件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM