0

我试图让用户登录到 UsersController 内的 2 个不同的表 tmp_users、active_users。

我为每个创建了两个自定义 Auth 组件。

App::uses('FormAuthenticate', 'Controller/Component/Auth');

class TmpUserAuthenticate extends FormAuthenticate {  
}

App::uses('FormAuthenticate', 'Controller/Component/Auth');

class ActiveAuthenticate extends FormAuthenticate {
}

在我的控制器中,我有这个: 组件:

public $components = array(
        'Cookie',
        'Session',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'home', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'home', 'action' => 'index'),
            'authenticate' => array(
                'TmpUser' => array(
                    'userModel' => 'User',
                    'fields' => array(
                        'username' => 'email',
                        'password' => 'password'
                    )
                ),
                'Active' => array(
                    'userModel' => 'ActiveUser',
                    'fields' => array(
                        'username' => 'email',
                        'password' => 'password'
                    ),
                    'scope' => array('crma' => 1)
                )
            )
        )
);

登录动作:这就是我什么。首先检查它是否是 tmp_user;如果不是,则检查它是否是 activer_user。如果之前没有,最后发送了 Flash 消息。

public function login(){
        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $this->Session->write('logged', 'true');
                $this->Session->write('verified', 'false');
                $this->redirect($this->Auth->redirectUrl());
            }else{
                if($this->Auth->login()){
                    $this->Session->write('logged', 'true');
                    $this->Session->write('verified', 'true');
                    $this->redirect($this->Auth->redirectUrl());
                }else{
                    $this->Session->setFlash('Invalid username or password, try again');
                }
            }
        }
    }

首先:感谢您的时间和帮助。2. 我什至不知道这是否是正确的做法 3. 如果这是正确的,我做错了什么?4. 我需要使用相同的登录表单,希望有人能帮助我。

此致

4

0 回答 0