San*_*ndy 7 forms authentication cakephp login
我正在尝试使用CakePHP 2.0获得一个简单的登录表单...只是Auth,现在没有ACL.
我能够看到表单并输入电子邮件和密码,因为它们在数据库中,但我只是返回到表单并显示flash错误消息.这是我的代码:
AppController的:
class AppController extends Controller
{
function beforeFilter()
{
$this->Auth->userModel = 'Users';
$this->Auth->fields = array('username' => 'email', 'password' => 'password'); //have to put both, even if we're just changing one
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'hotels', 'action' => 'dashboard');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
}
}
Run Code Online (Sandbox Code Playgroud)
login.ctp:
<?php
echo $this->Form->create('User', array('action' => 'login'));
echo $this->Form->input('email');
echo $this->Form->input('password');
echo $this->Form->end('Login');
?>
Run Code Online (Sandbox Code Playgroud)
UsersController:
class UsersController extends AppController
{
var $name = 'Users';
var $helpers = array('Html','Form');
var $components = array('Auth','Session');
function beforeFilter()
{
$this->Auth->allow("logout");
parent::beforeFilter();
}
function index() { } //Redirects to login()
function login()
{
if ($this->Auth->login())
{
$this->redirect($this->Auth->redirect());
} else
{
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
function logout()
{
$this->redirect($this->Auth->logout());
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我很感激任何帮助.谢谢!
该"无效的用户名或密码,请重试"显示错误你击中后登录?
你应该检查几件事:
•输出是否$this->Auth->login()与数据库中的信息相同?将debug($this->Auth->login())看到输出你的登录方法提交表单后.
•密码是否在数据库中正确散列?
•尝试使AuthComponent所有控制器可用,而不仅仅是UsersController.
•不确定这是否有所不同,但parent::beforeFilter();在控制器beforeFilter方法中的其他任何事情之前调用.
编辑:
是否看到您正在尝试根据电子邮件和密码进行验证.默认情况下,AuthComponent需要用户名和密码.您必须明确声明您希望验证电子邮件和密码$this->Auth->login().这来自2.0文档:
public $components = array(
'Auth'=> array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
Run Code Online (Sandbox Code Playgroud)
我相信,你没有看到任何SQL输出这一事实.
| 归档时间: |
|
| 查看次数: |
11594 次 |
| 最近记录: |