Hallo!\n\nIch habe die Discord-Anmeldung auf meiner selbst gehosteten Installation eingerichtet. Es funktioniert ziemlich gut… bis auf eine Kleinigkeit.\n\n
\n\nWenn sich ein Benutzer mit Discord anmeldet, wird er jedes Mal zur Autorisierungsseite weitergeleitet, was bedeutet, dass er jedes Mal zustimmen muss, wenn er sich anmeldet. Nach meinem Verständnis sollte dies nur ein einmaliger Vorgang sein, wenn er die Discord-Anmeldung zum ersten Mal mit Discourse verknüpft.\n\nWie kann man das beheben? Ich habe die Dokumentation befolgt.Hat jemand dieses Problem?
Ja, ich habe es auf meiner Instanz ausprobiert und ich kann das Problem reproduzieren.
Zeigen Sie das gleiche Verhalten auf anderen Websites, die „Mit Discord anmelden“ anbieten? Wenn ja, könnte dies das erwartete Verhalten des Discord-Anmeldesystems und kein spezifisches Problem von Discourse sein.
Dies ist nicht das beabsichtigte Verhalten. Andere Webseiten und Foren, die ich nutze, bei denen man sich nur einmal mit Discord anmeldet, erfordern nur eine einmalige Authentifizierung. Danach ist man jedes Mal automatisch eingeloggt, wenn man sich mit Discord anmeldet, ohne die Authentifizierungsseite aufzurufen.
Es hat mit Discourse zu tun.
Gibt es ein öffentliches Beispiel, das Sie teilen können, damit wir es ausprobieren und die Implementierung vergleichen können?
Ich bin mir nicht sicher, was du mit “öffentliches Beispiel” meinst, Entschuldigung.
Dies ist jedoch nicht die Norm. Es sollte nur bei der ersten Anmeldung eine Discord-Authentifizierung erforderlich sein.
Ich meine:
Können Sie einen Link zu einer davon teilen? Dann können wir uns vielleicht ansehen, wie sie implementiert sind, und Discourse entsprechend anpassen.
Hier ist ein Message Board, das ich oft besuche, aber es ist keine Discourse-Software.
Ich frage mich, ob es am fehlenden prompt Parameter liegt, der in der Auth-URL auf none gesetzt ist?
promptsteuert, wie der Autorisierungsfluss mit bestehenden Autorisierungen umgeht. Wenn ein Benutzer Ihre Anwendung zuvor mit den angeforderten Bereichen autorisiert hat undpromptaufconsentgesetzt ist, wird er aufgefordert, seine Autorisierung erneut zu genehmigen. Wenn es aufnonegesetzt ist, wird der Autorisierungsbildschirm übersprungen und der Benutzer ohne Aufforderung zur Autorisierung zu Ihrer Umleitungs-URI zurückgeleitet.
Ich glaube, Sie sind auf etwas gestoßen. Ich habe das hier gefunden.
https://community.auth0.com/t/discord-connection-prompts-for-consent-every-login/135157
Vielleicht könnte dies in Discourse aktualisiert werden? Soweit ich weiß, ist dies nichts, was ich in meinem Admin-Panel oder im Discord-Entwicklerportal tun kann.
Es gibt eine Prompt-Einstellung für Google Auth in Discourse, und ich denke, es wäre sinnvoll, eine für Discord hinzuzufügen.
Ich habe das auch gerade bemerkt.
Kennst du zufällig, wo die Datei für diese Login-Einrichtung in Discourse installiert ist? Ich überlege, den folgenden Abschnitt
"upstream_params": {
"prompt": {
"value": "none"
}
},
in die Datei einzufügen und neu zu bauen, um zu sehen, ob das das Problem behebt.
Edit: Nach nochmaliger Überlegung glaube ich nicht, dass ich die Datei finden kann, die es mir ermöglicht, dies zu implementieren. Ich denke, ein Fix von Discourse ist notwendig, um das ordnungsgemäß funktionieren zu lassen.
Da ich das Problem auf meiner Instanz habe:
Ja, warten Sie auf Neuigkeiten vom Team ![]()
Cool. Muss ich sonst noch etwas tun (außer auf ein Update warten?)
Ich gehe davon aus, dass es keine wirkliche ETA für eine solche Korrektur gibt und sie wahrscheinlich von einem Dringlichkeitsstatus abhängt. Es ist nur eine geringfügige Unannehmlichkeit, nehme ich an. Aber es wäre großartig, wenn es behoben würde!
Eine Änderung, um prompt=none hinzuzufügen, klingt für mich gut. Wenn jemand schreiben, testen und einen PR erstellen kann, würde das helfen, die Änderung zu beschleunigen.
Die relevante Datei wäre diese, aber ich weiß aus dem Stegreif nicht genau, welche Änderung erforderlich wäre.
Beim Durchsehen der Datei habe ich hinzugefügt
option :authorize_params, prompt: 'none'
unter
option :authorize_options, %i[scope permissions]
auf meiner selbst gehosteten Installation.
Es funktioniert irgendwie…, aber nicht so, wie wir es wollen.
Es führt dich immer noch zur Discord-Authentifizierungsseite, aber der Benutzer muss nicht mehr auf authorize klicken. Die Seite lädt neu und bringt dich zurück auf deine Discourse-Seite.
Ein Schritt vorwärts, ein Schritt zurück. :schmelzendes Gesicht:
Edit: Ich sehe, @Arkshine und ich haben die Änderung getestet und das gleiche Ergebnis erhalten.
Ich habe einen schnellen Test gemacht (https://discourse.arkshine.dev/):
Es zeigt die Authentifizierungsseite, leitet aber automatisch weiter.
Selbst mit der Änderung wird man immer noch zur Discord-Authentifizierungsseite weitergeleitet - was nicht passieren sollte (obwohl man diesmal nicht manuell auf authenticate klicken muss).
Das Einreichen eines PR mit der vorgeschlagenen Änderung würde das Problem leider nicht beheben.

