I have two Drupal7 sites. I am using a service that allows a registered user to login using session authentication.
On the site that performs the call to my remote service I measured the time when I enter the login function and after I got my session id response. It is 6 seconds apart.
When I use the browser to login it works as normal, no delays. Both Drupal7 instances are running on localhost.
I need some pointers as to where to look in order to reduce this latency.
watchdog("LOG", "Login function hit at " . date(DATE_RFC2822));
$resource = 'access/';
$this->options = array(
'headers' => array(
'Accept' => 'application/json',
'Content-Type' => 'application/json',
),
'method' => 'POST',
'data' => json_encode(array(
'username' => $this->username,
'password' => $this->password,
)),
);
$response = drupal_http_request($this->base_url . $resource . 'user/login', $this->options);
$data = json_decode($response->data);
// Check response code
if ($response->code == 200 && $data != null) {
$this->options['headers']['Cookie'] = $data->session_name . '=' . $data->sessid;
watchdog("LOG", "Connected to remote at " . date(DATE_RFC2822));
}
I wrote a basic php login function to run it from outside a Drupal install and the time to login is 5 seconds. Measured the web login and it's instant. I also switched from Services Resource API 1.0 to 1.1 with no improvements.