Après avoir creusé un peu plus, je me demande si une solution légèrement moins bidouillée consisterait à adapter l’approche décrite par @simon dans ce post : Automatically login via SSO - #4 by simon
- Activer le paramètre « sso autorise tous les chemins de retour »
- Ajouter un iframe caché sur ma page, qui charge
https://discourse.example.com/session/sso?return_path=path_to_mypage.html - Lorsque l’utilisateur est connecté (sans interaction, car l’utilisateur est déjà connecté via SSO dans l’application de la page parente) et que l’iframe est redirigé vers
mypage.html, il peut communiquer à la page parente via postMessage() que l’utilisateur a été connecté à Discourse, et déclencher le script pour intégrer le sujet du forum.
Cela ne semble toujours pas être la solution idéale, car cela générera des allers-retours supplémentaires (le processus ci-dessus n’est vraiment nécessaire que si l’utilisateur n’est pas déjà connecté à Discourse).
Il me semble que la solution idéale serait qu’il soit possible de préserver l’URL du référent de la page d’intégration lorsqu’elle est redirigée via SSO.
Édité : J’ai implémenté la « bidouille » améliorée décrite ci-dessus dans ce post, et je peux au moins dire qu’elle fonctionne beaucoup mieux que la bidouille originale que j’ai décrite dans le message initial.