php CURL cant set content
I want to login the user when registration success. I'm using Symfony 3 with fos_user. This is the registration code:
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->createUser();
$user->setUsername($username);
$user->setPlainPassword($password);
$user->setEmail($email);
$role = "ROLE_USER";
$user->setRoles(array($role));
$user->setEnabled(true);
$user->setName($name);
$userManager->updateUser($user);
Now im trying to login user with CURL like this:
//LOGIN THE USER
$data = array(
'_username' => $username,
'_password' => $password,
'_remember_me' => false
);
$url = $this->generateUrl('fos_user_security_check');
$ch = curl_init($url);
$postString = http_build_query($data, '', '&');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded'
));
$response = curl_exec($ch);
curl_close($ch);
But this code don´t login the user and the /login_check action, returns me to /login page. I try with "REST CLIENT" and I can login the user by setting content-type: application/x-www-form-urlencoded, but i think that CURL is not setting the content type because when I print "curl_getinfo($ch);" returns this:
[url] => http://192.168.1.100/web/app_dev.php/login_check
[content_type] => text/html; charset=UTF-8
[http_code] => 302
[header_size] => 401
[request_size] => 222
...
I comment "csrf_token_generator: security.csrf.token_manager" in "security.yml" to login without TOKEN. Can anyone help me?
链接地址: http://www.djcxy.com/p/48876.html上一篇: 将curl请求转换为http请求?
下一篇: PHP CURL不能设置内容