Échec de connexion dans un seul site d'un système multisite

J’ai un site principal Discourse avec 6 sous-sites supplémentaires, chacun avec un domaine et une base de données distincts.

Initialement, j’ai copié la base de données du site principal pour maintenir la cohérence, et cela fonctionne bien avec les 5 autres sous-sites.

Pour un seul site, chaque fois que j’essaie de me connecter :

  • Si c’est via OIDC, j’obtiens l’erreur “Désolé, l’autorisation a expiré, ou vous avez changé de navigateur. Veuillez réessayer.” sur un écran vierge.
  • Si c’est par identifiant/mot de passe, j’obtiens “Erreur inconnue” au-dessus de la boîte identifiant/mot de passe.

J’ai même copié la base de données d’un site fonctionnel vers le nouveau, mais cela ne fonctionne pas.

Voici la configuration multisite, au cas où elle serait utile.

oneexample:
  adapter: postgresql
  database: oneexample
  username: adminexample
  password: pwexample
  host: 192.168.1.1
  port: 5432
  pool: 25
  timeout: 5000
  db_id: 5
  host_names:
    - 1example.com

La raison pour laquelle j’ai choisi ‘oneexample’ et ‘1example’ est que le domaine contient un chiffre au début. Mon seul soupçon jusqu’à présent est que le chiffre pose problème, car copier la base de données vers un site fonctionnel sans chiffre dans le nom de domaine fonctionne bien.

Certains pourraient dire que je devrais choisir un autre domaine, mais celui-ci est un domaine payant assez cher, et j’aimerais le faire fonctionner.

J’ai supprimé les cookies du navigateur, purgé les journaux de connexion de la base de données, et j’ai également essayé avec un autre domaine avec la même base de données. Tout a fonctionné correctement.

Une solution potentielle à laquelle je pense et que je n’ai pas testée est de changer le domaine en sous-domaine, juste pour remplacer le chiffre au début de l’adresse du domaine, comme :

Mais, encore une fois, cela va à l’encontre de l’idée de payer $$$ pour ce domaine premium.

Est-ce que je cherche au mauvais endroit ? Y a-t-il une solution qui fonctionne ?

J’ai également essayé avec host_names : xxx.1example.com, mais cela donne la même erreur.

Avec la même base de données, j’ai réussi à essayer avec un certain nombre d’URL sans numéro. Cela semble lié au problème de domaine, mais je n’ai aucune autre idée.

Depuis mon bloc location Nginx,

proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Proto $scheme;

J’ai supprimé la dernière ligne, car sa fonction fait double emploi avec les deux premières lignes. D’une manière ou d’une autre, il semble que Discourse ait vu la connexion provenir de http, au lieu de https.

J’ai également ajouté la ligne ci-dessous dans app.yml, juste pour m’assurer que Discourse tente bien de se connecter via https, et finalement cela fonctionne.

  • DISCOURSE_FORCE_HTTPS: true

La question principale est donc, comment cela a-t-il fonctionné pour les 5 autres sous-sites ?

vous m’avez eu sur celui-ci

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.