我尝试了太多的变化以在此处列出,但基本要点是我无法通过服务注册后立即使用户登录。我尝试了全新的Drupal 7.33安装,仅启用了Services 7.x.3.11,并且drupalgap 7.x.1.9提供了默认资源设置。
当我使用Drupal界面注册时,创建了用户,打开了会话,并登录了我的个人资料页面。
与
当我调用Services端点时/services/user/register.json
,Drupal创建了帐户,但会话不会持久。请参阅下面的屏幕截图。
我该如何A.让该会话保留下来以进行后续的Service资源调用,或者B.挂钩以将用户的密码或自动生成的密码重新添加回json响应中,这样我就可以以编程方式重新提交客户端的/login.json表单(仍然存在)?
这个问题是全局的$ user在Drupal接口和Services模块之间有什么区别?使用LoginToboggan描述了我同样的问题。
在我的屏幕快照中,您将看到一个名为“ login debug”的调试行。它来自“ /sites/all/modules/logintoboggan/logintoboggan.module”的第333行,在这里我尝试了所有这些都无济于事...
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');