cakephp 2.6.1 ajax登录无法正常工作

时间:2015-01-22 16:06:40

标签: cakephp cakephp-2.0

使用ajax登录时遇到问题。任何人都可以指导我一些有意义的文档。这听起来令人担忧。

  

在2.x $ this-> Auth->登录($ this-> request-> data)会将用户登录   无论发布什么数据,而在1.3中   $ this-> Auth-> login($ this-> data)将首先尝试识别用户   并且只在成功时登录。

$data['User']['email'] = "this";
$data['User']['password'] = "that";

$data = $this->request->input('json_decode', true);

$this->autoRender = false;
$this->response->type('json');

if ($this->Auth->login($data)){
    echo "access";
} else {
    echo "access denied";
}

它始终打印"访问"。

在AppController.php中

'Auth' => array(
            'loginRedirect' => array(
                'controller' => 'posts',
                'action' => 'index'
            ),
            'logoutRedirect' => array(
                'controller' => 'pages',
                'action' => 'display',
                'home'
            ),
            'authenticate' => array(
                'Form' => array(
                    'fields' => array('username' => 'email'),
                    'passwordHasher' => 'Blowfish'
                ),
            )
        ),

1 个答案:

答案 0 :(得分:0)

请改用AuthComponent::identify()。但这可以(而且显然应该)做得更好。您的代码告诉我,您在CakePHP中没有多少json经验。

检查手册的this page。您的请求也应该使用"接受:application / json"然后,您的数据应自动以$ this-> request->数据和then login() should pick it up automatically结尾。正确的方法是发送Accept标头而不仅仅依赖于扩展,这是一般的,而不仅仅是CakePHP特有的。