我会看到这样的登录,我按照文档执行了所有步骤,唯一的区别是我的登录是另一个双关语,而不是我项目结构中的默认布局我有一些东西
\ app \ src \ Tempalte \ layout \ default.ctp public.ctp
那么我的布局现在是auth组件
class AppController extends Controller {
$this->loadComponent('Auth',[
'authorize' => ['Controller'],
'authenticate' => [
'Form' => [
'userModel' => 'Usuarios',
'fields' => [
'username' => 'usuario',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Usuarios',
'action' => 'login'
],
'authError' => 'Ingrese Datos',
'loginRedirect' => [
'controller' => 'Portal',
'action' => 'dashboard'
],
]);
}
我的控制器用户
public function login() {
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
return $this->redirect($this->Auth->redirectUrl());
} else {
$this->Flash->error('Usuario y/o clave inválido',['key' => 'auth']);
}
}
$this->viewBuilder()->layout('public');
}
我的布局公众将成为我的登录
<?= $this->Flash->render('auth') ?>
<?= $this->Form->create() ?>
<div class="form-group">
<div class="input-group">
<i class="input-group-addon icon-user"></i>
<?= $this->Form->text('usuario',['placeholder' => 'Usuario','class'=>'form-control']) ?>
</div>
</div>
<div class="form-group">
<div class="input-group">
<i class="input-group-addon icon-key"></i>
<?= $this->Form->password('password',['placeholder' => 'Contraseña','class'=>'form-control']) ?>
</div>
</div>
<div class="form-group">
<?= $this->Html->link('Olvidaste tu Contraseña','/usuarios/password');?>
<?= $this->Form->button('Ingresar',['class'=>'btn btn-inverse btn-right'])?>
</div>
<?= $this->Form->end()?>
加载所有内容,但始终发送消息Usuario y / oclaveinválido
这是我的表
CREATE TABLE IF NOT EXISTS `usuario` (
`id_usuario` int(11) NOT NULL,
`usuario` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
我不应该错过更多应该工作或任何做错的事情请帮助
答案 0 :(得分:0)
请检查以下内容:
password
字段似乎太短:varchar(50)
。它需要至少60个字符或更长255才能确保更全面的哈希值始终有效。确保在AppController的$this->loadComponent('Auth')
方法中调用initialize()
。 E.g:
class AppController extends Controller {
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [...]);
}
}