Der Code, auf den ich verwiesen habe, dient zur Verwendung von WordPress als Authentifizierungsanbieter für Discourse.
Das WordPress-Plugin ermöglicht es WordPress auch, als DiscourseConnect-Client verwendet zu werden: wp-discourse/lib/sso-client at main · discourse/wp-discourse · GitHub.
Ich bin mir nicht sicher, was die Motivation für die Hinzufügung einer benutzerdefinierten SSO-Implementierung zu Discourse war. Ich vermute, es gab dafür einen geschäftlichen Grund.
Ein Vorteil ist, dass er es einer externen Website ermöglicht, eng in Discourse integriert zu werden. Zum Beispiel können alle hier aufgeführten Benutzerattribute während des Authentifizierungsprozesses mit Discourse synchronisiert werden: discourse/lib/discourse_connect_base.rb at 7b89fdead98606d4f47ceb0a1d240d0f6e5f589e · discourse/discourse · GitHub.
Er ermöglicht auch die Verwendung von Websites, die nicht als OAuth2- oder OpenID Connect-Anbieter konfiguriert sind, zur Authentifizierung von Benutzern auf Discourse.
Der Nachteil ist, dass benutzerdefinierter Code auf der Seite des Authentifizierungsanbieters hinzugefügt werden muss.