J’ai passé quelques heures à rechercher mon problème et je pense que je suis sur la bonne voie, mais j’ai peut-être besoin d’un petit coup de pouce dans la bonne direction.
Essentiellement, j’essaie d’intégrer Discourse en tant qu’implémentation headless dans mon projet React qui contient déjà des utilisateurs authentifiés dans sa propre base de données.
Pour ce faire, lorsque l’utilisateur se connecte sur la page React, il effectuera un SSO pour que l’utilisateur s’authentifie auprès de l’API Discourse afin que nous puissions appeler les fonctions appropriées, etc.
Donc, je fais d’abord un fetch depuis mon URL Discourse et j’empêche toute redirection comme ceci :
const response = await fetch('https://forum.mysite.com/session/sso', {
method: 'GET',
redirect: 'manual', // Empêche le suivi automatique des redirections
});
Ensuite, je fais toute la validation et j’envoie la charge utile avec les informations de l’utilisateur au backend en utilisant :
const loginResponse = await fetch(newurl.toString(), {
method: 'GET',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'manual',
});
Et le formatage, la signature et tout le reste semblent corrects. Mais cela me donne une erreur. J’ai donc commenté cela et j’ai copié l’URL générée dans mon navigateur pour voir ce qui se passe et cela me donne ceci :
Journal SSO détaillé : Le nonce est incorrect, a été généré dans une autre session de navigateur ou a expiré add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e
Après quelques recherches, je pense que ces réponses sont proches de m’aider, mais je ne suis toujours pas très clair sur ce qu’il faut changer pour ma configuration et force_https ne semble plus être un paramètre que nous pouvons manipuler (je ne sais même pas ce qu’il fait) :
J’ai l’impression que cela pourrait être causé par différentes sessions de navigateur, mais je ne sais pas. Je pense que je suis proche de faire fonctionner cela, j’ai juste besoin d’un petit coup de pouce. Toute information serait utile. Merci !
