我想使用 CakePHP 2.2 创建一个允许非浏览器客户端连接和存储/访问数据的应用程序。我一直在查看用户使用 UserController 中的这段代码登录的示例:
public function login()
{
if($this->request->is('post'))
{
if($this->Auth->login())
{
$this->Session->setFlash('Login Passed');
}
else
{
$this->Session->setFlash('Login Failed');
}
}
}
这是通过浏览器在浏览器上显示一个表单来完成的,用户填写“用户名”和“密码”,然后单击一个按钮提交。我知道使用 Javascript 和 Ajax,您可以“序列化”表单并将其发送到服务器,但假设我不想(或不能)使用表单,而只是让客户端发送两位信息:“用户名”和“密码”,我怎样才能通过上面的“登录”方法处理这些数据?我知道这Auth->login
需要一个可选参数$user
,但是有没有办法$user
从用户名/密码组合中获取,以便我可以将其传递给Auth->login
?我想象这样的事情:
public function login()
{
if($this->request->is('post'))
{
if($this->Auth->login())
{
$this->Session->setFlash('Login Passed');
}
else
{
$this->Session->setFlash('Login Failed');
}
}
else if ($this->RequestHandler->isAjax())
{
$tmpUser = getUser ('username', 'password'); // ????? ===> Whatever call is needed here.
if($this->Auth->login($tmpUser))
{
$this->Session->setFlash('Login Passed');
}
else
{
$this->Session->setFlash('Login Failed');
}
}
}