【问题标题】:CakePHP - combine ACL with REST APICakePHP - 将 ACL 与 REST API 相结合
【发布时间】:2010-12-31 07:01:59
【问题描述】:

我用一些模型创建了一个应用程序,之后,我使用 ACL 并创建了一些 ACO 来保护我的应用程序。

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

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

这也很好用,例如转到 http://localhost/myapp/routes.json 会给我一个我的路线的 json 对象如果我已经登录

shure,有人在使用我的 API 时无法使用 Web 表单登录,所以我想知道是否可以使用 REST Auth Basic(或 Digest)随请求发送常规登录信息并使用我的应用程序中的工作 ACL 进行身份验证并显示结果对象(或者如果它错误,则发送正确的标头)

有什么想法吗?

如果有不清楚的地方,请留言

我用的是最新的 cake php 版本 1.3.3

【问题讨论】:

    标签: php rest cakephp restful-authentication cakephp-1.3


    【解决方案1】:

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

    【讨论】:

    • 这确实是解决方案,但是这里还有一个问题。您在哪里手动登录用户?我进行了这项检查,并在 AppController::beforeFilter() 中手动登录了用户,但问题是 AuthComponent 在运行 beforeFilter() 之前进行了 ACL 检查。
    【解决方案2】:

    当使用 javascript 处理身份验证过程时,可以进行 http 摘要身份验证,非 javascript 客户端默认具有标准弹出窗口。 不过可能他们不会介意。

    http://www.peej.co.uk/articles/http-auth-with-html-forms.html 找到的信息:

    人们远离的主要原因 使用 HTTP 身份验证是他们 想要控制外观 登录表单和大多数浏览器显示 一个看起来很糟糕的对话框。所以呢 我们需要一种 HTML 表单的方法 传递 HTTP 身份验证数据 提交。 HTML 规范提供了 HTML 表单作为一种创建查询和 将 urlencoded 数据发布到 URL,但是 我们可以颠覆它吗?

    它带有警告:)

    警告:本文中概述的解决方案 文章是实验性的,可能是 完全谎言,请注意,您的 里程可能/将会有所不同。

    【讨论】:

      猜你喜欢
      • 2011-12-20
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 2018-06-12
      • 2018-05-13
      • 2018-02-02
      相关资源
      最近更新 更多