Nous utilisons un flux SSO Discourse que nous avons mis en œuvre en nous basant sur ce guide : Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
Cela a bien fonctionné pour nous jusqu’à présent. Mais maintenant, nous souhaitons permettre aux utilisateurs de notre système de modifier leur adresse e-mail, et cela semble entraîner des problèmes.
Lorsque je modifie l’e-mail de mon utilisateur dans notre système, la connexion SSO vers Discourse cesse de fonctionner.
Erreur de connexion
Un problème est survenu avec votre compte. Veuillez contacter l’administrateur du site.
Je suppose que Discourse reçoit une charge utile contenant une adresse e-mail et un nom d’utilisateur qui ne correspondent pas et ne sait pas comment réagir.
Quelle est la meilleure façon de gérer cela ?
La meilleure idée à laquelle j’ai pensé consiste à utiliser l’API Discourse pour modifier l’e-mail de l’utilisateur dans Discourse afin qu’il corresponde à celui de notre système avant d’initier le SSO.
Mais je ne sais pas si cela est possible. Voici ma tentative infructueuse.
Voici ma requête :
https://forum-stage.{domain}.com/users/{username}/preferences/email
En-têtes :
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Corps (en tant que x-www-form-urlencoded dans Postman) :
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system
Et voici la réponse que je reçois :
{
"errors": [
"Vous n'êtes pas autorisé à consulter la ressource demandée."
],
"error_type": "invalid_access"
}