2012-04-12 1 views
0

я использовал поваренную книгу, чтобы создать свою собственную проверку подлинности, используя следующий код:CakePHP 2,1 -> CustomAuthorization класс не работает должным образом

// Controller/Auth/CustomAuthenticate.php 



App::uses('BaseAuthenticate', 'Controller/Component/Auth'); 

class CustomAuthenticate extends BaseAuthenticate { 

    public function authenticate(CakeRequest $request, CakeResponse $response) { 
     return false; 
    } 
} 

// Controller/UserController.php 


class UserController extends AppController { 
    var $components = array('Auth' => array('authenticate' => array('Custom'))); 

    public function login() { 
     // some code that includes: 
     $this->Auth->login($this->request->data); 
    } 
} 

Как-то с правильными учетными данными, то Логин, кажется, работает, хотя метод AUTHENTICATE в моем классе CustomAuthentication возвращается значение false.

Я использую CakePHP 2.1

+0

Возможно, потому что это все, что ваш метод 'authenticate()' ... возвращает false. –

ответ

1

вы не можете ожидать, чтобы это работало Собственость, потому что вы не должны проходить $this->request->data на формах авторизации.

это просто

$this->Auth->login(); 

иначе вы пропускаете аутентификации и передаваемые данные будут всегда войти в этот пользователь. Независимо, если это garbige или правильные учетные данные. никогда не делайте этого с помощью форм входа.

+0

Это неправда ... http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#manually-logging-users-in, кроме того, он не отвечает на мой вопрос. –

+0

у вас есть 2.x, не так ли? те же ссылки, на которые вы только что указали, заявили, что вы стоите исправлены: «В 2.0 $ this-> Auth-> login ($ this-> request-> data) будет регистрировать пользователя с помощью любых данных, размещенных« => thats just то, что я сказал. И это также ответ, почему ваш код ведет себя таким образом. вы пропустите свой метод authenticate() с помощью вашего принудительного входа. вы можете путать аутентификацию с авторизацией. – mark

+0

Извините, что вы правы! Это серьезное изменение с 1,3 года и вызвало у меня большую головную боль. Спасибо! –