Est-il possible d'intégrer Discourse dans une communauté Salesforce (site Experience Cloud) via un iframe ? Si oui, comment ?

J’utilise l’essai Entreprise et je suis cet article. LWC est utilisé comme conteneur pour Discourse. Comme LWC ne permet pas d’ajouter les balises et au code HTML, j’ai téléchargé la bibliothèque JavaScript depuis myDiscourseAcc.discourse.group/javascripts/embed.js, je l’ai enregistrée dans mon org Salesforce en tant que ressource statique, puis je l’ai chargée dans LWC.

L’iframe s’affiche, mais elle montre toujours la page de connexion et le bouton « Se connecter pour répondre ». Or, j’ai besoin d’afficher le forum et toutes ses fonctionnalités, ce qui n’est pas possible actuellement.

  1. Dans LWC, j’ai spécifié discourseUrl, discourseEmbedUrl et fullApp (réglé sur true) pour window.DiscourseEmbed.
  2. Le site communautaire SF a été ajouté dans Admin → Intégration → hôtes. Le mode application complète est activé.
  3. Discourse Connect fonctionne correctement et les paramètres nécessaires sont bien configurés. Je suis arrivé à cette conclusion car je peux accéder à Discourse via la communauté SF, et je peux me connecter automatiquement à Discourse en utilisant mon utilisateur de la communauté lorsque je me connecte.
  4. Dans l’org Salesforce, Discourse a été ajouté aux URL de confiance.
  5. Lors de la connexion à la communauté, aucune erreur ne se produit, ni dans les journaux de la communauté SF, ni dans ceux de Discourse.
  6. Lors du chargement de la communauté, je peux configurer une redirection vers Discourse et revenir en arrière pour obtenir SSO et SIG via l’URL.
  7. Lorsque je clique sur un bouton personnalisé ou sur le bouton « Se connecter pour répondre » (à l’intérieur de l’iframe Discourse affichée), je peux ouvrir Discourse dans une fenêtre ou un nouvel onglet séparé.
  8. La communauté Salesforce et mon instance Discourse sont sur des domaines différents.

Malgré tout cela, la page de connexion reste ouverte à l’intérieur de l’iframe intégrée. Je ne suis pas certain, mais le problème pourrait être lié aux cookies.

Vos options sont les suivantes :

  1. Déplacer Discourse et le site Salesforce pour qu’ils partagent le même domaine de base, par exemple forum.votresite.com et crm.votresite.com.

  2. Modifier same_site_cookies de Lax à None. Cela implique d’utiliser les paramètres de site cachés.