在我的数据库中有用户表,并且有一个记录 - 用户,密码用md5散列。Cakephp auth登录问题?
问题是我每次尝试使用正确的管理员/密码登录时我得到不好的用户/密码登录信息。
这里是我的控制器:
class UsersController extends AppController {
var $name = 'Users';
function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow(array('*'));
}
function login() {
//debug($this->data);
if ($this->Session->read('Auth.User')) {
$this->Session->setFlash('You are logged in!');
}
}
function logout() {
$this->redirect($this->Auth->logout());
}
}
和appControler
class AppController extends Controller {
var $components = array('Auth', 'Session');
function beforeFilter() {
//debug($this->data);
//Security::setHash('md5');
$this->Auth->allow('admin_index', 'index', 'login', 'logout');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'index');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'logout');
$this->Auth->loginRedirect = array('controller' => 'posts', 'action' => 'index');
}
}
login.ctp:
<div class="login">
<?
$session->flash('auth');
echo $form->create('User', array('action' => 'login'));
echo $form->inputs(array('legend' => __('Login', true), 'username', 'password'));
echo $form->end('Login');
?>
</div>
,这里是来自app_controller
Array
(
[User] => Array
(
[username] => admin
[password] => pass
)
)
调试味精从用户控制器
和调试消息:
Array
(
[User] => Array
(
[username] => admin
[password] => 8e2665a3fe6983fa38464685ac4a3d9c93a3d301
//this is not empty anymore but it is not same as in database
)
)
这里是SQL代码,这是好的,但用户密码散列是错误的。
SELECT `User`.`id`, `User`.`username`, `User`.`password`, `User`.`email`, `User`.`created` FROM `users` AS `User` WHERE `User`.`username` = 'admin' AND `User`.`password` = '09b98f2308740bf305ce1e1097d02ded' LIMIT 1
可能是什么问题?我是cakephp中的新人。 TNX提前
edit1为你添加。 – benjamin 2011-03-07 19:22:20
忘记旧帖子,如果您坚持使用默认值,则不必手动进行散列。你为什么要使用md5? sha1是默认的(iirc),更安全。 – benjamin 2011-03-07 19:27:44
重写编辑1更易于使用 – benjamin 2011-03-07 19:45:27