CakePHP 使用 Auth 组件通过用户名或电子邮件登录

标签 cakephp

在我目前的系统中,我需要使用用户名或电子邮件和密码登录。 有人知道如何实现这一目标吗?

我的表格:

<?php echo $this->Form->create('User', array('action' => 'login'));
  echo $this->Form->input('username', array('class' => 'TextField js-user-mode'));
 echo $this->Form->input('password', array('class' => 'TextField')); 
?>

我的应用程序 Controller :

public $components = array(


        'Email'=>array(),
        'Auth'              => array(
            'loginAction'       => array(
                'admin'             => false,
                'controller'        => 'users',
                'action'            => 'login'
            ),
            'authError'     => 'Your session has ended due to inactivity.  Please login to continue.',
            'authenticate'  => array(
                'Form'          => array(
                    'fields'        => array('username' => array('username','email')),
                ),
                'all' => array(
                    'userModel' => 'User',
                    'scope' => array('User.status' =>array('active'))
                )

            )
        )
    ); 

让我知道我还需要做什么..??

最佳答案

我不确定发布旧问题答案的礼仪是什么,但这就是我为此所做的。

在我的登录功能中

        $username  = $this->data['User']['username'];
        $password = $this->request->data['User']['password'];

        $user = $this->User->findByUsername($username);
        if (empty($user)) {
            $user = $this->User->findByEmail($username);

            if (empty($user)) {
                $this->Session->setFlash(__('Incorrect Email/Username or Password'));
                return;
            }
            $this->request->data['User']['username'] = $user['User']['username'];
        }

关于CakePHP 使用 Auth 组件通过用户名或电子邮件登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977959/

相关文章:

php - 在 cakephp Controller 中找不到 4o4

cakephp - OSX 本地 SSL 不受尊重?

javascript - CakePHP 3.8 根据用户选择更改表单数据

cakephp - 在 Cakephp 中允许特定页面

css - 如何在cakephp中内联文本框和按钮

php - CakePHP 分页不允许公共(public) $paginate 变量根据条件更改

php - 使用 CakePHP 如何从数据库中导出数据。不包括架构

php - 在 CakePHP 中显示 PNG 图标

CakePHP 2.1.1。 testAction() 未定义

unit-testing - 如何在 cakephp 中从浏览器运行测试用例