2009-10-30 56 views
2

我的Web應用程序只有一個授權級別。這是要麼你登錄或不。 ACL會爲此過度殺傷? Auth組件是否足夠/足夠安全地處理這種情況?CakePHP:ACL和/或身份驗證

CakePHP會話匿名用戶嗎?如果是這樣,是否有辦法解決這個問題?如果用戶是匿名的,我不認爲我需要傳遞會話。

回答

3

僅當您需要爲某些用戶組而不是其他用戶提供對站點某些部分的訪問權限時,才需要ACL組件。如果你只需要知道某人是否是用戶,Auth會讓你覆蓋。

默認情況下,會話是爲每個人創建的。如果你沒有將它們用於匿名用戶,可以將它們始終打開,因爲a)這樣更容易,b)這樣做的開銷極小。如果您決定繼續使用並在不使用時關閉它們,您可以在app/config/core.phpset Session.start to false

但是,您必須添加代碼才能在用戶登錄時啓動會話。您也可能會遇到Auth組件的問題。它利用了會話組件,我相信它預計會在每次頁面加載時啓動會話。

1

簡短回答:也許吧。 很長的答案:看來,對於你解釋的情況,Auth應該足夠了(假設你也使用Sanitize,但是如果使用ACL,你也應該這樣做)。

至於會話的使用,我認爲你不必擔心Cake將它們用於匿名用戶,但我確實沒有閱讀代碼。無論如何,我不認爲將它們關閉而非登錄用戶很容易,但讓他們登錄人員。

0

使用驗證組件是罰款

使用消毒圖書館無關,與這個在所有。瞭解Cake,如果需要與AuthComponent結合使用進行消毒,那麼該組件將在內部使用Sanitize。你不需要自己做任何事情。

如果您設置了一個帶有id,username,password字段的用戶模型,並且只需在您的AppController中包含Auth組件並將該組件設置爲允許「顯示」操作(對於主頁IE PagesController :: display('home ');)這應該讓你開始。

使用谷歌搜索bakery.cakephp.org應該會爲你提供一些很好的Auth教程。