次のコマンドを使用してユーザーを作成しようとしています。
$ curl -H 'Content-type: application/json' -d '{"name":"u10", "pass": "123","mail": "[email protected]"}' http://localhost/test/api/user/register
成功を返す:
{"uid":"11","uri":"http://drupal/daxuebao/api/user/11"}
しかし、私はログインしようとします:
$ curl -H 'Content-type: application/json' -d '{"username":"u10", "password": "123","mail": "[email protected]"}' http://localhost/test/api/user/login
それは私に警告します:
["Wrong username or password."]
では、curlコマンドラインを正しく使用するにはどうすればよいですか?
ユーザー名とパスワードのみを送信する必要があります。メールは必要ありません。ドキュメントを確認してください こちら ...
$base_url = 'http://localhost/test_endpoint';
$data = array(
'username' => 'admin',
'password' => 'password',
);
$data = http_build_query($data, '', '&');
$headers = array();
$options = array(
'headers' => array(
'Accept' => 'application/json',
),
'method' => 'POST',
'data' => $data
);
$response = drupal_http_request($base_url . '/user/login', $options);
$data = json_decode($response->data);
// Check if login was successful
if ($response->code == 200) {
// Now recycle the login cookie we recieved in the first request
$options['headers']['Cookie'] = $data->session_name . '=' . $data->sessid;
// Get info about a user
$data = array();
$options['data'] = http_build_query($data, '', '&');
$options['method'] = 'GET';
$response = drupal_http_request($base_url . '/user/32', $options);
}
以下は私のために働いた
curl -H 'Content-type: application/json' -d '{"username":"admin", "password": "admin"}' http://localhost/d7/testendpoint/user/login
あなたの場合、それは
curl -H 'Content-type: application/json' -d '{"username":"u10", "password": "123"}' http://localhost/test/api/user/login