|
Cake-PHP.ru Форум программистов CakePHP (на сайт)
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
uran26
цитировать
Зарегистрирован: 02 Апр 2009 12:13:49 Сообщения: 31 Откуда: Кировоград
|
Добавлено: 30 Авг 2009 14:17:04 Заголовок сообщения: Компонент Auth |
|
|
Решил сделать авторизацию на сайте как описано вот тут http://book.cakephp.org/view/172/Authentication.
То есть есть таблица users с полями username и password,
Контроллер Users и его методы isAuthorized, login(пустой) и logout.
Код: |
function isAuthorized() {
return true;
}
|
Код: |
function logout () {
$this->redirect ( $this->Auth->logout () );
}
|
Вид login:
Код: |
<?php
if ( $session->check ( "Message.flash" ) )
$session->flash ();
if ( $session->check ( "Message.auth" ) )
$session->flash ( "auth" );
echo $session->read ( "Auth.user" );
echo $form->create ( array ( 'controller' => 'users', 'action' => 'login' ) );
?>
Name:
<?php echo $form->input ( 'User.username', array ( 'size' => 64, 'label'=>false ) ); ?>
Password:
<?php
echo $form->password ( 'User.password', array ( 'size' => 64, 'label' => false ) );
echo $form->submit ( 'Login' );
?>
|
Пытаемся логинится - вводим логин и пароль (существующего пользователя с хешированным паролем sha1), получаем:
Login failed. Invalid username or password.
Решил посмотреть какие данные приходят в login, добавил такое:
Код: |
$this->set ( "data", $this->data['User'] );
|
И в вид соответственно:
Что показало мне: array(2) { ["username"]=> string(4) "test" ["password"]=> NULL }
Dedug сообщает что был выполнен вот такой запрос к базе:
Код: |
SELECT `User`.`id`, `User`.`username`, `User`.`password` FROM `users` AS `User` WHERE `User`.`username` = 'test' AND `User`.`password` = '20ec9b017e09672c62365b1374f3d42322d05cca' LIMIT 1
|
Объясните мне почему password = null ??? Где он теряется??? с моей стороны с $this->data['User']['password'] в контроллере никаких действий не производится. |
|
Вернуться к началу |
|
|
mayar
цитировать
Зарегистрирован: 03 Апр 2009 15:52:14 Сообщения: 24
|
Добавлено: 09 Сен 2009 10:48:41 Заголовок сообщения: |
|
|
А ты настроил сам компонент Auth?
app_controller.php
Код: |
<?php
class AppController extends Controller {
var $components = array('Acl', 'Auth');
function beforeFilter() {
//Configure AuthComponent
$this->Auth->authorize = 'actions';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'add');
}
}
?>
|
Делай прямо по шагам:
http://book.cakephp.org/view/643/Preparing-to-Add-Auth |
|
Вернуться к началу |
|
|
|
|
Вы можете начинать темы Вы можете отвечать на сообщения Вы можете редактировать свои сообщения Вы можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group Русская поддержка phpBB
|