رابط إعادة التوجيه لـ SSO

I am using wordpress as a SSO client to discourse.

How do I set it up so a user is sent back to the page he/she was on after logging in.

Here is what my SSO URL looks like:


As you can see it redirects to my website homepage. Could I edit this link to redirect the user back to the page he was on? will this mess up the SSO?

Yes, you can set any page on your WordPress site as the value for redirect_to. You probably do not have to URL encode the redirect_to parameter. Something like this should work:

http://theprojectvanlife.com/?discourse_sso=1&redirect_to=http://theprojectvanlife.com/my-wordpress-page

so by adding “my-wordpress-page” as the redirect it will redirect user to the page he/she was on?
Or did you mean to replace “my-wordpress-page” with the page I want the user redirected to?

Yes. set the redirect_to parameter to the URL of the page you want users to end up on.

Is it possible to setup a redirect to link that just sends them back to the same page they were on?

You can use the [discourse_sso_client] shortcode on any WordPress page to create a ‘Login with Discourse’ link that will redirect users back to the page that the shortcode was placed on.

There is some documentation on the plugin’s SSO Client tab for the shortcode.

There was a bug in the most recent versions of the plugin that was causing the shortcode to display the ‘Link your account with Discourse’ text for logged in users who had already linked their account. Update to WP Discourse version 1.6.0 to get the fix.

مرحبًا، أعتقد أن إضافة هذه الميزة ستكون سهلة ومفيدة جدًا لوظائف الإضافة: نموذج تسجيل أو رابط مستقل؟. أنا أستخدم Discourse كخادم رئيسي للمصادقة الموحدة (SSO)، وسيكون من المفيد جدًا توفير صفحة تسجيل دخول للمستخدمين الحاليين ورابط تسجيل للمستخدمين الجدد مع إعادة التوجيه إلى الصفحة الأصلية التي أتوا منها.

مرحبًا، لا نخطط حاليًا لتنفيذ أي شيء هنا بخلاف معلمة redirect_to.

إن توجيه المستخدم مرة أخرى إلى الصفحة نفسها التي كان عليها أمر أكثر تعقيدًا مما يبدو. فهناك العديد من الحالات الحدية. وإذا أضفنا ذلك كميزة أساسية، فسنكون بالتالي ملتزمين بدعم جميع تلك الحالات الحدية أيضًا :slight_smile: وكما تتخيل، هناك طرق كثيرة جدًا لتكوين موقع ووردبريس.

لقد أعطيتك تلميحًا بشأن هذا بالفعل من هنا، ولكن لمساعدتك أكثر قليلًا، أنت أو مطورك ستحتاجان إلى القيام بشيء من هذا القبيل، أي تمديد الاختصار الحالي لضبط route_to تلقائيًا على عنوان URL الحالي للموقع. بعد ذلك، يمكنك تحديد الحالات الحدية لذلك لموقعك المحدد.

في functions.php

use WPDiscourse\SSOClient\SSOClientShortcode;

function render_discourse_sso_client_link_with_redirect() {
    $sso = new SSOClientShortcode();
    $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
    $current_url = "$protocol://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $options = array(
      "redirect"  => $current_url,
      "login"     => "Login"
    );
    return $sso->discourse_sso_client_shortcode( $options );
}
add_shortcode( 'discourse_sso_client_link_with_redirect', 'render_discourse_sso_client_link_with_redirect' );

ثم في قالبك، استخدم الاختصار [discourse_sso_client_link_with_redirect]

شكرًا لك، هذا يساعد كثيرًا يا صديقي!