여기에 나열하기에는 너무 많은 변형을 시도했지만 기본 요점은 서비스를 통해 등록한 직후 사용자가 로그인 할 수 없다는 것입니다. Services 7.x.3.11 만 활성화하고 drupalgap 7.x.1.9에서 제공하는 기본 리소스 설정으로 새로운 Drupal 7.33 설치를 시도했습니다.
Drupal 인터페이스를 사용하여 등록하면 사용자가 생성되고 세션이 열리고 로그인 한 프로필 페이지에 도착합니다.
vs.
서비스 엔드 포인트를 호출하면 /services/user/register.json
Drupal이 계정을 작성하지만 세션이 지속되지 않습니다. 아래 스크린 샷을 참조하십시오.
어떻게 A. 후속 서비스 리소스 호출에 대해 세션을 유지하거나 B. 후크를 사용하여 사용자 또는 자동 생성 암호를 json 응답에 다시 추가하여 클라이언트 측 (/login.json 양식을 프로그래밍 방식으로 다시 제출 할 수 있습니까? 지속됩니까)?
이 질문 은 Drupal 인터페이스와 서비스 모듈 간의 글로벌 $ user가 어떻게 다를 수 있습니까? 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');