Connexion SSO : Erreur de connexion sso_login

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 !

Cela ressemble au problème. Vous devriez pouvoir le contourner en désactivant le paramètre du site discourse_connect_csrf_protection. C’est un paramètre de site caché, défini sur true par défaut. Vous devrez l’activer à partir de la console Rails.

Il est utilisé dans le code ici :

Si c’est défini sur vrai par défaut, je pense que vous voulez dire que je devrais le définir sur faux. Je vais essayer ça maintenant.

1 « J'aime »

Cela semble avoir résolu le problème. Merci pour ces informations ! Je n’aurais probablement jamais trouvé ça lol

1 « J'aime »

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