【问题标题】:cakePHP - how does the AuthComponent authenticate?cakePHP - AuthComponent 如何进行身份验证?
【发布时间】:2011-07-13 02:24:19
【问题描述】:

我正在尝试了解 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 操作完全留空,当用户到达登录页面时,身份验证组件仍会尝试进行身份验证。

这是应该的吗?如果它总是尝试进行身份验证,这会不会是个问题?

【问题讨论】:

    标签: php cakephp login authentication


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2017-05-06
      • 2015-09-23
      • 2014-05-11
      相关资源
      最近更新 更多