我正在使用Cakephp 2.4,我在使用Auth进行简单身份验证时遇到了问题。
我在我的数据库中使用“mail”列作为登录。
我的所作所为:
AppController.php中的
public $components = array('DebugKit.Toolbar', 'Session', 'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
'plugin' => false
),
'authError' => 'Pensiez-vous réellement que vous étiez autorisés à voir cela ?',
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'mail')
)
)
));
UsersController.php中的
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
} else {
$this->Session->setFlash(
__('Username ou password est incorrect'),
'default',
array(),
'auth'
);
}
}
}
in login.ctp
<div class="users form">
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User');?>
<fieldset>
<legend><?php echo __('Merci de rentrer votre nom d\'user et mot de passe'); ?></legend>
<?php echo $this->Form->input('username');
echo $this->Form->input('password');
?>
</fieldset>
<?php echo $this->Form->end(__('Connexion'));?>
</div>
我尝试了一个清晰的哈希密码,但每次他都不会记录我。
答案 0 :(得分:1)
您似乎正在使用错误的表单字段...这是我的代码,它在我的某个应用程序中运行:
<强>控制器:强>
public $components = array(
'Auth'=> array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
查看:强>
echo $this->Form->create();
echo $this->Form->input('email');
echo $this->Form->input('password');
echo $this->Form->end(__('Sign in', true));
请注意我正在使用&#34;电子邮件&#34;以我的形式输入,而不是&#34;用户名&#34;这是错误的。
答案 1 :(得分:1)
在您的视图中,您需要使用字段名称“mail”而不是“username”。
echo $this->Form->input('mail');