Hallo. Ich bin brandneu bei Discourse. Ich habe eine App, die auf AWS läuft und Cognito zur Authentifizierung verwendet. Ich möchte diese App mit meinem neuen Discourse-Forum verbinden, das gehostet wird. Ich habe einen guten Start gemacht, aber ich hoffe, dass mir jemand bei den letzten Schritten helfen kann.
Das Ziel ist es, die Anmeldung zwischen meiner App und dem Discourse-Forum nahtlos zu gestalten. Also:
-
Wenn ein Benutzer in meiner App angemeldet ist, erkennt Discourse dies, wenn er zum Discourse-Forum geht, und verlangt keine erneute Anmeldung.
-
Ebenso, wenn ein Benutzer zuerst das Discourse-Forum besucht und nicht angemeldet ist, leitet Discourse ihn zur Anmeldeseite meiner App weiter (oder zu einer gehosteten Login-Oberfläche, falls nötig).
Das OpenId Connect-Authentifizierungs-Plugin scheint dafür gut geeignet zu sein. Ich habe mich für einen Business-Plan bei Discourse angemeldet, um sicherzustellen, dass ich dieses Plugin nutzen kann.
Ich habe die Anweisungen von @david durchgearbeitet und das, was ich als Einrichtung auf der Cognito-Seite betrachte, durchgeführt:
-
Von Cognito habe ich das „OpenID Connect Discovery-Dokument" und die „OpenID Connect-Client-ID" erhalten.
-
In meinen Discourse-Einstellungen unter openId_Connect habe ich diese hinzugefügt und gespeichert.
-
Ich habe „OpenID Connect-Authentifizierung aktivieren" aktiviert und unter „OpenID Connect-Autorisierungsbereich" „openid email" eingegeben. Diese Einstellungen habe ich gespeichert.
Laut der Plugin-Beschreibung sollte das jetzt funktionieren, oder?
Nun, wenn ich mich in meiner App anmelde und dann zu meinem Forum gehe, passiert nichts. Es wird einfach die normale Startseite mit den Schaltflächen „Anmelden" und „Registrieren" angezeigt. Ich hoffe, dass es mich nach der Überprüfung bei Cognito automatisch anmeldet, aber das tut es nicht. Was muss ich noch tun?
Zusätzlich sollten Benutzer, die frisch auf die Forum-Seite kommen (ohne sich jemals in meiner App angemeldet zu haben), die Discourse-Schaltflächen „Registrieren" und „Anmelden" nicht sehen – stattdessen sollten sie eine Schaltfläche sehen, auf die sie klicken können, um zur Anmeldeseite meiner App weitergeleitet zu werden. Wie füge ich diese hinzu?
Und schließlich abonnieren Benutzer meine App und zahlen für Premium-Funktionen. Dies wird als benutzerdefiniertes Attribut für den Benutzer in Cognito gespeichert (es gibt ein benutzerdefiniertes Attribut, das „Abonniert" oder „Nicht abonniert" angibt). Nur abonnierte Benutzer sollten auf dem Forum posten dürfen. Wenn Discognito also mit Cognito kommuniziert, um die Benutzerinformationen zu erhalten, muss es das benutzerdefinierte Attribut des Benutzers prüfen und nur dann, wenn der Benutzer abonniert ist, ihm die Möglichkeit zum Posten geben. Wie mache ich das?
Da ich bei Discourse noch so neu bin, wäre ich für alle Informationen, die jemand zu diesen Fragen hat, sehr dankbar. Danke!