Wie man Discourse Connect (SSO) verwendet, um Avatar, Benutzername und Namen zu aktualisieren?

Ich konnte Discourse SSO unter https://forum.mycoralapp.com einrichten

Und ich kann den Benutzer beim ersten Mal mit seiner eigenen E-Mail, seinem Namen, Benutzernamen und Avatar erstellen.

Aber die Frage ist, wie kann ich sie aktualisieren, sobald sie sich auf unserer Seite (in der App) ändern? Ich melde mich ab und mit SSO an und sende einen anderen Namen, Benutzernamen und ein anderes Foto, aber die alten bleiben bestehen. Ich habe auch diese Dinge im Admin-Bereich deaktiviert, was anscheinend zumindest den Avatar überschreiben sollte, aber nichts passiert:

Sind Name und Benutzername immer änderbar? Warum wird das nicht neben “Avatar” erwähnt? In der Praxis ändert sich jedoch NICHTS

1 „Gefällt mir“

Können Sie den Discourse Connect-Code teilen, den Ihre App ausführt? Es scheint, dass die Informationen nicht richtig übermittelt werden.

2 „Gefällt mir“

Etwas wie das hier: Here is some PHP code and you'd do similar for iOS and Android. Remember to intercept the URL request in WebView! · GitHub

Es ist gut genug, um das Konto mit den richtigen Informationen zu erstellen. Aber es überschreibt es nicht später bei nachfolgenden Anmeldungen.

Laut diesem muss ich die Rails-App aufrufen und Dinge wie SiteSetting.discourse_connect_overrides_avatar einstellen. Ich weiß nicht, ob das daran liegt, dass es alte Anweisungen sind, aber das Admin-Kontrollfeld enthält nicht einmal Dinge wie “Namen überschreiben” und “Benutzernamen überschreiben”.

2 „Gefällt mir“

@EGreg Hast du dafür schon eine Lösung gefunden?
Ich habe das gleiche Problem mit einem selbst gehosteten Discourse.
Der SSO-Login scheint den Benutzernamen für bestehende Konten, die vor der Implementierung von SSO existierten, nicht zu überschreiben, obwohl die Einstellung “Benutzernamen überschreiben” aktiviert ist.

@pfaffman hat mir geholfen und ich glaube, es hat funktioniert. Muss es noch einmal überprüfen. Jay?

1 „Gefällt mir“

Entschuldigung. Ich weiß nichts darüber, wie bestehende Konten verbunden werden und ob sie umbenannt werden, sonst hätte ich auf das andere Thema geantwortet.

1 „Gefällt mir“

Wenn ich mir die OP dieses Themas ansehe, sehe ich, dass die Einstellung auth overrides username im Screenshot nicht als aktiviert angezeigt wird. Diese Einstellung muss aktiviert sein, damit DiscourseConnect den Benutzernamen überschreiben kann. Es wäre großartig, wenn die Einstellungsseite deutlicher machen würde, dass diese drei Einstellungen mit DiscourseConnect zusammenhängen:

  • auth overrides email
  • auth overrides username
  • auth overrides name

Stellen Sie außerdem sicher, dass sich die Benutzer von Discourse abmelden und sich dann über DiscourseConnect wieder anmelden. Wenn sie sich nicht von Discourse abmelden, wird die Änderung nicht wirksam. Sie können dieses Problem umgehen, indem Sie einen API-Aufruf an die Route sync_sso im Namen des Benutzers tätigen: Sync DiscourseConnect user data with the sync_sso route.

3 „Gefällt mir“

Vielen Dank an alle.
Ich habe es mit einem anderen Benutzernamen erneut versucht und es hat funktioniert.
Ich vermute, es hatte etwas mit den Discourse-Benutzernamenregeln zu tun. Da der neue Benutzername mit einem Unterstrich begann, war er gemäß den Discourse-Regeln ungültig, und das könnte der Grund sein, warum er im Forum nicht angezeigt wurde.

2 „Gefällt mir“