cakePHP - AuthComponent如何进行身份验证?

时间:2011-07-13 02:24:19

标签: php cakephp login authentication

我正在尝试围绕auth组件进行身份验证的方式。

目前我的AppController看起来像这样。

class AppController extends Controller 
{
    var $components = array('Auth', 'Session');

    function beforeFilter() 
    {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
    }
}

如果我要将login操作完全清空,则当用户到达登录页面时,auth组件仍会尝试进行身份验证。

这是怎么回事?如果它总是试图进行身份验证,那么这不是问题吗?

1 个答案:

答案 0 :(得分:3)

如果请求的操作是AuthComponent::loginAction中配置的操作(默认情况下为UserController::login),则$this->data包含AuthComponent::userModel / AuthComponent::fields中配置的字段({默认情况下为{1}}和User.username,AuthComponent将尝试对当前用户进行身份验证。它会在 User.password执行后自动尝试,但之前调用请求的操作。如果登录成功(并且您可能已在AuthComponent配置中应用的任何其他限制已清除),它将重定向到用户来自的位置,否则它将照常执行请求的操作。

所以不,这不会造成问题,因为它只会在这些特殊情况下尝试进行身份验证。