ユーザーログインは、他のdrupal cas(Central Authentication Service)を使用するサイトからのものです。次に、メインサイトにアクセスし、認証されたユーザーがコンテンツを表示できます。メインサイトはDrupalgapを使用してモバイル用のインターフェースを再設計します。
これで、Webブラウザーを使用するときに、ログインしてコンテンツの表示を開始することができます。しかし、Drupalgapでそれを行う方法がわかりません。一部のアプリが他のサイトのアカウントでログインできることを確認しました。ログインが成功すると、リダイレクトされてアプリに戻ります。
誰かがそれを行う方法を知っていますか?
他のサイトのログインURLを使用しようとしています。
bl('Login', 'www.example.com/cas', { InAppBrowser:true });
これにより、アプリページ内ではなく、新しいWebブラウザーが開きます。ログインに成功すると、私のメインサイトに戻るためのリンクがあります。これらは、元のアプリ内ではなく、新しいWebブラウザーを介して動作しています。
Drupal=側で、hook_form_alter()
を実装するカスタムモジュールを作成し、それを使用してカスタム#submit
ハンドラーをuser_login_form
にアタッチします。カスタム送信ハンドラーを使用すると、ユーザーをヘッドレスDrupalGap Webアプリにリダイレクトできます。
/**
* Implements hook_form_alter().
*/
function example_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_login_form' && arg(0) == 'drupalgap') {
$form['#submit'][] = 'example_user_login_form_submit';
}
}
function example_user_login_form_submit($form, &$form_state) {
$uid = 123; // This id will be somewhere in the $form or $form_state object.
drupal_goto('https://example.com/#user_' . $uid);
}
drupalgap
をサービスエンドポイントパスに置き換えますが、デフォルトではdrupalgap
です。