2010-08-18 159 views
2

我创建了一些模型的应用程序,之后,我使用了ACL并创建了一些ACO来保护我的应用程序。CakePHP - 将ACL与REST API结合使用

现在我想一个RESTful API添加到我的应用程序,所以我编辑routes.php有类似的东西

Router::mapResources('routes'); 
Router::parseExtensions(); 

这也能正常工作,例如要http://localhost/myapp/routes.json给我,我的路线的JSON对象如果我已经登录

舒尔,当他使用我的API时,有人无法使用web-form进行登录,所以我想知道是否可以使用请求发送常规登录信息REST Auth Basic(或摘要)并使用工作ACL在我的应用程序进行身份验证并显示结果对象(或者如果它错了,发送正确的标题)

有什么想法?

如果事情还不清楚,请留下评论

我采用了最新的蛋糕PHP版本1.3.3

回答

1

如果你看看其他的API为基础的服务,他们通常使用令牌来识别用户。例如,如果用户名为matt并且他拥有令牌123456,则可以授予他对url http://localhost/myapp/123456/routes.json的访问权限。然后,在您的控制器中,您可以使用令牌对用户进行身份验证。

+0

这的确是解决方案,但是,这里还有一个问题。你在哪里手动登录用户?我做了这个检查,并手动在AppController :: beforeFilter()中登录用户,但问题是AuthComponent在beforeFilter()运行之前进行ACL检查。 – 2012-02-08 17:29:14

0

当JavaScript用于处理认证过程时,非JavaScript客户端默认为具有标准弹出窗口,http摘要认证是可能的。 虽然他们可能不介意。

信息发现在http://www.peej.co.uk/articles/http-auth-with-html-forms.html

主要的原因是人们使用HTTP认证是他们 希望对 登录表单的外观控制从 走开,大多数浏览器显示 一个可怕的期待对话框。那么我们需要的是什么 是一种HTML格式的方式,当 提交时,通过HTTP验证数据传递给 。 HTML规范提供HTML 表单作为创建查询的方式, 将urlencoded数据发布到URL,但 可以颠覆它吗?

它配备了一个警告:)

警告:本 本文中列出的解决办法是实验性的,并可能是一个 彻头彻尾的谎言,予以警告,您的 里程可能/可能会有所不同。