2010-08-18 163 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,但 可以顛覆它嗎?

它配備了一個警告:)

警告:本 本文中列出的解決辦法是實驗性的,並可能是一個 徹頭徹尾的謊言,予以警告,您的 里程可能/可能會有所不同。