Voici ma situation. J’essaie d’installer Discourse sur talk.example.com tout en maintenant un site web sur www.example.com. Je souhaite que lorsqu’une personne se connecte au site Discourse, elle apparaisse également connectée sur le site www. Si elle se déconnecte du site Discourse, elle est déconnectée de www. J’ai beaucoup lu sur les sujets ici et la réponse commune semble être d’utiliser SSO. Je ne pense pas que cela puisse fonctionner dans ma situation, et voici pourquoi.
Le site sur www.example.com est un site statique construit avec Hugo. Pour ceux qui ne le connaissent pas, pensez à Jekyll. Il n’y a donc ni base de données ni backend quelconque pour celui-ci. Ce n’est pas une « application ». Je veux essentiellement que Discourse serve de backend pseudo pour ce site statique. S’ils ont des notifications non lues sur Discourse, je souhaite pouvoir les leur afficher via le site statique.
La seule façon à laquelle je peux penser pour faire cela est via les cookies de Discourse qui n’incluent pas le sous-domaine, ce que mes recherches jusqu’à présent indiquent que Discourse ne prend pas en charge.
Si le site était dynamique avec un backend, et que vous aviez un SSO entre Discourse et le site, il y aurait une voie claire à suivre. Votre backend connaîtrait l’utilisateur et pourrait utiliser une clé API d’administration pour interroger les notifications Discourse pour l’utilisateur actuel et les envoyer avec la page à chaque requête.
Comme le site est une page statique, il n’a pas vraiment d’état de connexion, n’est-ce pas ?
Exactement. Il s’agit simplement de HTML, CSS et de JavaScript front-end classique.
Dans un scénario idéal, j’aimerais pouvoir utiliser JavaScript sur le site statique, qui s’exécute dans le navigateur, pour récupérer des données depuis Discourse.
Les notifications en sont un exemple, et un widget d’intégration pour cela serait idéal.
Un autre exemple : j’aimerais pouvoir définir un champ utilisateur sur Discourse que les personnes pourraient remplir. Ensuite, sur le site statique, je pourrais accéder à ce champ utilisateur pour modifier la façon dont le contenu est rendu (via JavaScript). Par exemple, pour réorganiser le contenu et le personnaliser pour l’utilisateur.
Je sais que ce sera un hack non pris en charge, mais existe-t-il un moyen de modifier la façon dont Discourse définit son cookie de session pour qu’il n’inclue pas le sous-domaine, et qui survive aux mises à jour ?