CakePHP: ACL и / или Auth - PullRequest
       11

CakePHP: ACL и / или Auth

2 голосов
/ 30 октября 2009

Мое веб-приложение имеет только один уровень авторизации. Это либо вы вошли в систему или нет. Будет ли ACL излишним для этого? Будет ли компонент Auth достаточным / безопасным для решения этой ситуации?

Использует ли CakePHP сеанс анонимных пользователей? Если так, есть ли способ отключить это? Я не думаю, что мне нужно передавать сеансы, если пользователь анонимный.

Ответы [ 3 ]

3 голосов
/ 31 октября 2009

Компонент ACL необходим только в том случае, если вам необходимо предоставить доступ к определенным частям сайта определенным группам пользователей, а не другим. Если вам нужно только знать, кто-то является пользователем или нет, Auth предоставит вам покрытие.

По умолчанию сессии создаются для всех. Если вы не используете их для анонимных пользователей, можно оставить их включенными постоянно, потому что а) это проще и б) накладные расходы на это крайне минимальны. Если вы решите пойти дальше и отключить их, когда они не используются, вы можете установить для Session.start значение false в app / config / core.php .

Однако вам придется добавить код, чтобы начать сеанс, когда пользователь вошел в систему. У вас также могут возникнуть проблемы с компонентом Auth. Он использует компонент Session, и я полагаю, что он ожидает, что сессии будут запускаться при каждой загрузке страницы.

1 голос
/ 31 октября 2009

Краткий ответ: Возможно. Длинный ответ: кажется, что для случая, который вы объясняете, Auth должно быть достаточно (при условии, что вы также используете Sanitize, но это также следует делать, если вы все равно используете ACL).

Что касается использования сессий, я не думаю, что вам нужно беспокоиться о том, чтобы Cake использовал их для анонимных пользователей, но я действительно не читал код. В любом случае, я не думаю, что их будет легко отключить для тех, кто не вошел в систему, но оставит их включенными для людей, вошедших в систему.

0 голосов
/ 03 ноября 2009

Использование компонента Auth нормально

Использование библиотеки Sanitize не имеет к этому никакого отношения. Зная Cake, если что-то нужно продезинфицировать вместе с AuthComponent, то этот компонент будет использовать Sanitize для внутреннего использования. Вам не нужно ничего делать с этим самостоятельно.

Если вы настраиваете модель пользователя с полями id, username, password и просто включаете компонент Auth в свой AppController и устанавливаете компонент, разрешающий действие 'display' (для домашней страницы IE PagesController :: display ('home' );) это должно начать вас.

Поиск в Google или поиск bakery.cakephp.org приведут вас к хорошим урокам по аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...