Für all jene, die Probleme haben, OAuth2 mit GitHub zum Laufen zu bringen, hier eine Lösung.
Problem: Das Discourse OAuth2-Plugin erzeugt einen Fehler 500, wenn es mit GitHub aktiviert ist und die Felder in der Konfiguration nicht korrekt eingestellt sind. Da die Dokumentation spärlich darüber ist, was und wie man konfigurieren soll, hier die wichtigen (und einige optionale) Felder:
OAuth2 client ID Client-ID von GitHub
OAuth2 client secret Client-Geheimnis von GitHub
OAuth2 authorize URL https[:]//github[.]com/login/oauth/authorize
OAuth2 token URL https[:]//github[.]com/login/oauth/access_token
OAuth2 token URL method POST
OAuth2 user JSON URL https[:]//api.github[.]com/user
OAuth2 user JSON URL method GET
OAuth2 JSON user ID path id
OAuth2 JSON username path login
OAuth2 JSON name path name
OAuth2 JSON email path mail
OAuth2 JSON avatar path avatar_url
OAuth2 send auth header x
OAuth2 send auth body x
OAuth2 allow association change x
Zur Fehlersuche (nur):
OAuth2 debug auth x
Auf der GitHub-Seite, falls Sie diese Informationen ebenfalls benötigen, hier das Nötige:
Gehen Sie zu https[:]//github[.]com/settings/developers, klicken Sie auf “New OAuth App”
Geben Sie den Anwendungsnamen ein (z.B. Discourse),
Homepage URL
und
Authorization callback URL (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
und vergessen Sie nicht, auf “Update application” zu klicken.
Das war’s.
Hoffe, das hilft!
Kann ich die Entwickler bitten, bitte die (ungültige, weil leer) Rückmeldung zu prüfen, wenn die obligatorische “OAuth2 user JSON URL” nicht gesetzt ist? Es erzeugt diesen Fehler und wirft einen 500.
ActiveRecord::NotNullViolation (PG::NotNullViolation: ERROR: null value in column “provider_uid” of relation “user_associated_accounts” violates not-null constraint
Entschuldigung für die Verschleierung in den URLs, mir wurde gesagt, dass neue Benutzer nur 2 Links pro Beitrag haben dürfen.