我目前正在为我的应用程序进行AJAX登录。在startpage的顶部有一个登录链接,当点击时会打开一个带有loginform的对话框,但我有几个问题:
我想我现在将发布所有需要的代码进行分析。
UsersController ::登录()
public function login() {
if($this->RequestHandler->isAjax()) {
$this->layout = 'ajax';
$this->render('/elements/users/login');
}
return $this->Auth->login();
}
元素/ AJAX / login.ctp 这是登录对话框的模板。
<?php echo $this->Session->flash(); ?>
<fieldset>
<?php
echo $this->Session->flash();
echo $this->Form->create(
'User',
array(
'controller' => 'users',
'action' => 'login'
)
);
echo $this->Form->input(
'email',
array(
'label' => 'E-Mail',
'style' => 'width: 270px;'
)
);
echo $this->Form->input(
'password',
array(
'style' => 'width: 270px;'
)
);
echo $this->Js->submit(
'Login',
array('url' => array(
'controller' => 'users',
'action' => 'login'
),
'update' => '#loginContainer')
);
echo $this->Form->end();
?>
</fieldset>
我认为它与UsersController :: login()有关,但我不知道在哪里搜索。也许你可以帮助我?谢谢:))
答案 0 :(得分:1)
来自Auth :: login()上的book:
需要注意的一点是,您必须在登录后手动重定向用户,因为未调用loginRedirect。 $ this-&gt; Auth-&gt;登录($ data)成功登录时返回1,失败时返回0
所以大致类似于:
if ($this->Auth->login() === 1) {
$this->redirect('/');
} else {
$this->set('status', 'Bad login details');
}
*彻底未经测试
与为处理该问题而编写的javascript连接。