使用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'
),
)
),
答案 0 :(得分:0)
请改用AuthComponent::identify()。但这可以(而且显然应该)做得更好。您的代码告诉我,您在CakePHP中没有多少json经验。
检查手册的this page。您的请求也应该使用"接受:application / json"然后,您的数据应自动以$ this-> request->数据和then login() should pick it up automatically结尾。正确的方法是发送Accept标头而不仅仅依赖于扩展,这是一般的,而不仅仅是CakePHP特有的。