Wir verwenden einen Discourse-SSO-Flow, den wir basierend auf diesem Leitfaden implementiert haben: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
Das hat bei uns gut funktioniert. Jetzt möchten wir jedoch Benutzern in unserem System erlauben, ihre E-Mail-Adresse zu ändern, und dies scheint zu Problemen zu führen.
Wenn ich die E-Mail-Adresse meines Benutzers in unserem System ändere, funktioniert die SSO-Verbindung zu Discourse nicht mehr.
Login-Fehler
Es liegt ein Problem mit Ihrem Konto vor. Bitte kontaktieren Sie den Administrator der Seite.
Ich vermute, dass Discourse eine Nutzlast erhält, bei der E-Mail und Benutzername nicht übereinstimmen, und nicht weiß, wie es damit umgehen soll.
Was ist ein guter Weg, um damit umzugehen?
Die beste Idee, die ich bisher hatte, besteht darin, die Discourse-API zu verwenden, um die E-Mail-Adresse des Benutzers in Discourse vor Initiierung der SSO an die in unserem System anzupassen.
Ich weiß jedoch nicht, ob das möglich ist. Unten ist mein gescheiterter Versuch dargestellt.
Hier ist meine Anfrage:
https://forum-stage.{domain}.com/users/{username}/preferences/email
Headers:
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Body (als x-www-form-urlencoded in Postman):
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system
Und hier ist die Antwort, die ich erhalte:
{
"errors": [
"Sie sind nicht berechtigt, die angeforderte Ressource anzuzeigen."
],
"error_type": "invalid_access"
}