Lien de redirection 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.

Salut, je pense que ce serait une ajout simple mais excellent à la fonctionnalité de ce plugin si vous pouviez également implémenter ceci : Formulaire deinscription autonome / lien ?. J’utilise Discourse comme maître SSO et il serait très utile de fournir à la fois une page de connexion pour les utilisateurs existants et un lien d’inscription pour les nouveaux utilisateurs, avec une redirection vers la page d’origine d’où ils sont venus.

Salut, nous n’avons actuellement aucun projet de mise en œuvre d’une fonctionnalité supplémentaire ici au-delà du paramètre redirect_to.

Il est un peu plus complexe qu’il n’y paraît de « rediriger quelqu’un vers la même page sur laquelle il se trouvait ». Il existe de nombreux cas limites. Si nous ajoutions cela en tant que fonctionnalité principale, nous nous engagerions implicitement à prendre en charge tous ces cas limites également :slight_smile: Comme vous pouvez l’imaginer, il existe de nombreuses façons différentes de configurer un site WordPress.

Je vous ai déjà donné un petit indice à ce sujet, mais pour vous aider un peu plus, vous ou votre développeur devrez procéder comme suit, à savoir étendre le shortcode existant pour définir automatiquement le route_to sur l’URL actuelle du site. Vous pourrez ensuite gérer les cas limites spécifiques à votre propre site.

Dans 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"     => "Connexion"
    );
    return $sso->discourse_sso_client_shortcode( $options );
}
add_shortcode( 'discourse_sso_client_link_with_redirect', 'render_discourse_sso_client_link_with_redirect' );

Ensuite, dans votre modèle, utilisez le shortcode [discourse_sso_client_link_with_redirect]

Merci, ça aide beaucoup, mon pote !