web-dev-qa-db-ja.com

ログイン後にソーシャルネットワーキングサイトを介して特定のページをリダイレクトする方法

私のDrupalサイトでは、ユーザー/ログインにアクセスするチェックアウトページにlinkを配置しました。正常にログインすると、チェックアウトページにリダイレクトされます。このために?destination=checkoutをURLに含めます。私はフォームの変更を使用して達成しました

function module_form_commerce_checkout_form_checkout_alter(&$form, &$form_state, $form_id) {
  $form['checkout_message']['#markup'] = t('<a href="/user/login?destination=/checkout">Click to login</a>');
}

これにより、loginページにリダイレクトされ、次にcheckoutページにリダイレクトされます。ログインページにソーシャルサイトのログインがあります(Facebook、Twitter、Googleなど)。

ユーザーがソーシャルサイト経由でログインした場合、ユーザーをチェックアウトにリダイレクトするにはどうすればよいですか?参考:上記はソーシャルネットワークのログインでは機能しません。

以下は、ソーシャルログインを実行するために使用されるモジュールです。

1
Vamsi

ユーザーが適切にログインした後、サードパーティの認証モジュールが適切な宛先を決定するために使用する可能性がある要件として、 ser_login_destination() を使用できます。

function user_login_destination() {
  $destination = drupal_get_destination();
  if ($destination['destination'] == 'user/login') {
    $destination['destination'] = 'user';
  }
  return $destination;
}

4行目を次のように変更するだけです。

$destination['destination'] = '<path you want to go to after login>';
1
Dev

私は Rules モジュールを使用してこれを機能させ、「 Rulesモジュールを使用して古いのカスタムリダイレクトを実装する方法URL? "。あなたのケースでも機能させるために必要ないくつかの変更を以下に示します。

  • チェックアウトページを指すようにURLを調整します。
  • ログインに使用したソーシャルサイトに固有のルールイベントを追加します。例:
    • FBOauth を使用しているかどうかを確認するには、ルールイベント「Facebook接続を使用してログインしたユーザー」を使用できます。これは、ルールを有効にした後でルールで選択できるイベントです Facebookルール モジュール。
    • HybridAuth を使用しているかどうかを確認するには、ルールイベント " HybridAuthを介してログインしたユーザー "を使用できます。

上記で説明したルールを使用することで、すでに持っているカスタムコードはおそらく必要なくなります(質問で述べたように)。

URL引数の値をルールの新しい変数として使用できるようにするには、 Rules URL引数 モジュールを使用できます。これについての引用は次のとおりです(プロジェクトページから)。

... URL引数に基づく2つのルール条件を提供します。

  • uRL引数が存在するかどうかを確認します。
  • uRL引数の値を比較します。

また、URL引数の値をルールの新しい変数として使用できるようにするアクションも提供します。

新しく提供されたルールのアクションと条件は、ルール構成インターフェースの「URL引数」条件とアクショングループの下にあります。

使用方法の例については、 問題#1686360のコメント# を参照してください。これは、約 "URLに量を渡す、つまり、site/contentです。/node-title?amount = 10または/ node-title?= amount:10"。その関連部分は次のとおりです。

  • ルールに「URL引数が存在するかどうかを確認」条件を追加し、「ARGUMENT」値を「amount」に設定します。
  • ルールに「URL引数の値を提供する」アクションを追加し、「URL引数名」の値を「量」に設定し、「提供された変数」セクションで「URLからの引数-変数名」を次のように設定します。 「amount_from_url」。

これで、このルールの他のアクションの変数「amount-from-url」として金額の値を使用できるようになります。

[〜#〜] ps [〜#〜]Rules に慣れていない(まだ/まだ)場合、32(!!!)のすばらしい無料のビデオチュートリアル ルールフレームワークを学ぶ をチェックして、7つの章にまとめてください。

1
Pierre.Vriens