web-dev-qa-db-ja.com

サービスモジュールでcurlコマンドラインを正しく使用する方法

次のコマンドを使用してユーザーを作成しようとしています。

$ 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コマンドラインを正しく使用するにはどうすればよいですか?

2
TangMonk

ユーザー名とパスワードのみを送信する必要があります。メールは必要ありません。ドキュメントを確認してください こちら ...

$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
0
Anil Sagar