繁体   English   中英

CakePHP Ajax登录验证失败

[英]CakePHP Ajax Login-Validation Failure

我目前正在为我的应用程序进行AJAX登录。 在起始页的顶部,有一个登录链接,单击该链接可在单击时打开一个带有loginform的对话框,但是我有几个问题:

  1. 用户输入错误或没有数据时,不会显示任何错误
  2. 当我单击“登录”并且JsHelper更新了“模板”,然后再次单击“登录”时,他将我重定向到http://www.url.com/users/login (这不应该发生)
  3. 输入正确的logindata时,我已登录,但是没有完成重定向或显示消息。

我想我现在将发布所有需要分析的代码。

UsersController :: login()

    public function login() {
        if($this->RequestHandler->isAjax()) {
            $this->layout = 'ajax';
            $this->render('/elements/users/login');
        }
        return $this->Auth->login();
    }

elements / 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()有关,但我不知道在哪里搜索。 所以也许你可以帮我吗? 谢谢 :)

从关于Auth :: login()的书中

需要注意的一件事是您必须在登录后手动重定向用户 ,因为未调用loginRedirect。 $ this-> Auth-> login($ data)在成功登录时返回1,在失败时返回0

所以大致类似于:

if ($this->Auth->login() === 1) {
    $this->redirect('/');
} else {
    $this->set('status', 'Bad login details');
}

*未经测试

连接的JavaScript来处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM