我正在使用drupal 7和REST api。 我想使用curl登录drupal,稍后当我使用浏览器访问该网站时我想要登录。
我在使用这个代码:
<?php
$user_data = array(
'username' => 'usertest',
'password' => 'pass',
);
$ch = curl_init();
$tmpfname = dirname(__FILE__).'/'.$_COOKIE['PHPSESSID'].'.txt';
curl_setopt($ch, CURLOPT_URL, "http://example.com/networklogin/user/login");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $user_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
curl_setopt( $ch, CURLOPT_COOKIEJAR, $tmpfname );
curl_setopt( $ch, CURLOPT_COOKIEFILE, $tmpfname );
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
?>
它工作得很好,它会记录用户,但是当我访问“example.com”时,我不会记录为“usertest”。 有没有办法让我登录Drupal并允许我使用浏览器访问?
目标是当我在此处(Same webserver, same drupal, same db, single sign on?)登录时,使用相同的用户登录我的许多网站。
答案 0 :(得分:0)
好的,我在这里找到了一个解决方案: Login to website through CURL and client browser
对用户浏览器使用curl cookie是非常不可能的..