2010-07-29 7 views
2

После добавления компонента Auth при доступе к домашней странице он перенаправляет на страницу входа
, т. Е. Www.domain.com - это мой url.
После добавления компонента auth, когда я пытаюсь получить доступ к www.domain.com, он перенаправляется на www.domain.com/logins/login.Компонент Auth автоматически переадресовывается в cakePHP

как я могу избежать этого первоначального перенаправления ??

я уже дал маршрут, как показано ниже

Router::connect('/', array(
    'controller' => 'pages', 'action' => 'display', 'home' 
)); 

, но не использовать
thankz заранее

+0

когда я пытаюсь использовать var $ components = array ('Auth'); в app_controller и пропустить этот оператор в pages_controller, инструкции allowActions не вступают в силу. iam с использованием cakePHP 1.2. у любого тела есть какая-то идея, где я ошибаюсь? – RSK

ответ

2

In AppController::beforeFilter() add the following:

$this->Auth->allowedActions = array('display'); 

UPDATE: allowedActions являются действия контроллера, для которых проверка пользователь не обязательный. http://api.cakephp.org/2.4/source-class-AuthComponent.html#228-234

+0

Nb: повлияет на ВСЕ страницы. Поэтому вам понадобится больше, если, например, вы все еще хотите, чтобы некоторые страницы были защищены Auth. –

+0

Что вы подразумеваете под «всеми страницами»? – bancer

+0

Если вы используете по умолчанию 'PagesController', действие' display' обрабатывает несколько шаблонов - например. 'home.ctp' в вашем примере выше. Если у вас были другие «страницы» (например, шаблоны), управляемые 'PagesController' (например,' about.ctp'), то указанный выше фрагмент кода также позволял просматривать эти объекты без аутентификации. Если это то, что вы намеревались, то здорово. В противном случае вы можете изменить 'PagesController' или использовать другой контроллер и т. Д. –

3

В вашем pages_controller.php (если у вас еще нет в app/controllers, скопируйте один из cake/libs/controller:

function beforeFilter() 
{ 
    parent::beforeFilter(); 
    $this->Auth->allow('*'); 
} 
+1

Не забудьте изменить это назад! Также не попадайте, разрешая вход и выход из системы, так как iirc они доступны по умолчанию в компоненте. В идеале, идеальна книга: –

+0

@DY: В контроллерах страниц это не должно быть проблемой, поскольку она там отображает открытые страницы, которые не подходят нигде. Я должен был проверить значение по умолчанию - на самом деле у него есть $ this-> Auth-> allowedActions = array ('display'); которого должно быть достаточно. – Leo

2

Вы также можете просто добавить этот код в ваш users контроллера, чтобы остановить его от автоматического перенаправления, но, как и все остальные сказали, вы должны также позволить display.

function beforeFilter() { 
    ... 
    $this->Auth->autoRedirect = false; 
} 

http://book.cakephp.org/view/395/autoRedirect

+0

Жаль ник, это используется для перенаправления после успешного входа в систему? но thatz не мой случай – RSK

Смежные вопросы