Я перепробовал слишком много вариантов, чтобы перечислить их здесь, но суть в том, что я не могу войти в систему сразу после регистрации через Сервисы. Я пробовал новую установку Drupal 7.33 с включенными только Services 7.x.3.11 и настройками ресурса по умолчанию, предоставленными drupalgap 7.x.1.9
Когда я регистрируюсь с использованием интерфейса Drupal, пользователь создается, сессия открывается, и я попадаю на страницу своего профиля, на которой зарегистрирован.
против
Когда я вызываю конечную точку Сервисов /services/user/register.json
, Drupal создает учетную запись, но сеанс не сохраняется. Смотрите мои скриншоты ниже.
Как я могу либо A. заставить сеанс сохраниться для последующих вызовов ресурсов службы ИЛИ B. перехватить, чтобы добавить пользовательский или автоматически сгенерированный пароль обратно в ответ json, чтобы я мог программно повторно отправить форму /login.json на стороне клиента (которая сохраняется)?
Этот вопрос, как глобальный $ user может отличаться между интерфейсом Drupal и модулем Services? описывает мою проблему с помощью LoginToboggan.
На моем скриншоте вы увидите строку отладки, называемую «отладка входа». Это происходит из строки 333 "/sites/all/modules/logintoboggan/logintoboggan.module", где я пробовал все это безрезультатно ...
function logintoboggan_process_login($account, &$edit, $redirect = array()){
global $user;
$user = user_load($account->uid);
//watchdog('login debug', json_encode($account));
watchdog('login debug', json_encode($edit));
//user_login_submit(array(), array('uid' => $account->uid));
user_login_finalize($edit);
// $user = user_load($account->uid);
// $user->token = drupal_get_token('services'); // WE HAVE A TOKEN ALTHOUGH I DOUBT THIS WOULD WORK IN TERMS OF SESSION PERSISTANCE
// user_login_finalize($edit);
// module_invoke_all('hook_user_login');
// module_invoke_all('tripchi_user_login');
// module_invoke_all('logintoboggan_user_login');