0

我使用说明书使用以下代码创建了我自己的自定义身份验证:

// Controller/Auth/CustomAuthenticate.php



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

class CustomAuthenticate extends BaseAuthenticate {

    public function authenticate(CakeRequest $request, CakeResponse $response) {
        return false;
    }
} 

// Controller/UserController.php


class UserController extends AppController {
   var $components = array('Auth' => array('authenticate' => array('Custom')));

   public function login() {
      // some code that includes:
      $this->Auth->login($this->request->data);
   }
}

不知何故,使用正确的凭据,登录似乎可以工作,尽管我的 CustomAuthentication 类中的 authenticate 方法返回 false。

我正在使用 CakePHP 2.1

4

1 回答 1

1

你不能指望这能正常工作,因为你不应该传递$this->request->data登录表单。

这只是

$this->Auth->login();

否则,您将跳过身份验证,并且传递的数据将始终登录该用户。无论它是垃圾还是正确的凭据。永远不要用登录表单这样做。

于 2012-04-12T12:20:20.787 回答