我正在尝试围绕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组件仍会尝试进行身份验证。
这是怎么回事?如果它总是试图进行身份验证,那么这不是问题吗?
答案 0 :(得分:3)
如果请求的操作是AuthComponent::loginAction
中配置的操作(默认情况下为UserController::login
),则$this->data
包含AuthComponent::userModel
/ AuthComponent::fields
中配置的字段({默认情况下为{1}}和User.username
,AuthComponent将尝试对当前用户进行身份验证。它会在 User.password
执行后自动尝试,但在之前调用请求的操作。如果登录成功(并且您可能已在AuthComponent配置中应用的任何其他限制已清除),它将重定向到用户来自的位置,否则它将照常执行请求的操作。
所以不,这不会造成问题,因为它只会在这些特殊情况下尝试进行身份验证。