AuthComponent userModel仍然执行用户登录

时间:2013-03-17 21:46:01

标签: cakephp

在我尝试使用Google搜索找到解决方案后,我仍然没有找到任何帮助我的方法。问题很简单,我想用另一个Model进行用户身份验证。手册向我们展示的方式确实不起作用。

我的AppController如下所示:

public $components = array(
        'Auth',
        'DebugKit.Toolbar'
    );

    public function beforeFilter()
    {
        parent::beforeFilter();
        if (isset($this->request->params["intranet"]) && $this->request->params["intranet"] == 1) {
            $this->Auth = array(
            "loginAction" => array(
                "intranet" => true,
                "controller" => "employees",
                "action" => "login"
            ),
            "authenticate" => array(AuthComponent::ALL => array("userModel" => "Employee"))
        );
            $this->layout = "intranet";
        }
    }

我打开的url并不重要,CakePHP总是将我重定向到/ users / login。当然,我在控制器中运行parent :: beforeFilter()。

编辑好吧,好像我想念 userModel loginAction 似乎是正确的关键字,但在我将其更改为 array(“controller”=>“employees”,“action”=>“login”)它仍然将我重定向到/ users / login ...

1 个答案:

答案 0 :(得分:0)

哦,天哪,我太笨了......我猜大多数程序员在阅读完之后已经有了一个facepalm,但是对于那些可能会遇到同样问题的新的CakePHP / PHP开发人员来说:

在上面的代码中,我用数组覆盖$ this-> Auth。解决方案:

$this->Auth->loginAction = array(
                "intranet" => true,
                "controller" => "employees",
                "action" => "login"
            );
            $this->Auth->authenticate = array(AuthComponent::ALL => array("userModel" => "Employee"));