ここにリストするにはあまりにも多くのバリエーションを試してみましたが、基本的なポイントは、サービスを介して登録した直後にユーザーをログインさせることができないということです。私は、サービス7.x.3.11のみを有効にし、drupalgap 7.x.1.9によって提供されるデフォルトのリソース設定で、Drupal 7.33の新規インストールを試しました。
Drupalインターフェースを使用して登録すると、ユーザーが作成され、セッションが開き、ログインしているプロフィールページに移動します。
対
サービスエンドポイントを呼び出すと/services/user/register.json
、Drupalはアカウントを作成しますが、セッションは持続しません。以下のスクリーンショットをご覧ください。
A.後続のサービスリソース呼び出しのためにセッションを持続させるか、またはB.フックを使用してjson応答にユーザーのパスワードまたは自動生成されたパスワードを追加し、プログラムで/login.jsonフォームのクライアント側(これは、持続しますか?)
この質問では、グローバル$ userがDrupalインターフェースとサービスモジュールでどのように異なるのでしょうか?LoginTobogganを使用した同じ問題について説明します。
スクリーンショットには、「ログインデバッグ」というデバッグ行があります。これは、「/ 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');