Pour toutes ces personnes ayant des problèmes pour faire fonctionner oauth2 avec GitHub, voici une solution.
Problème : Le plugin oauth2 de Discourse génère une erreur 500 lorsqu’il est activé avec Github et que les champs de configuration ne sont pas correctement remplis. Comme la documentation est pauvre sur ce qu’il faut configurer et comment, voici les champs importants (et certains optionnels) :
OAuth2 client ID ID client de GitHub
OAuth2 client secret Secret client de 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
pour le débogage (uniquement) :
OAuth2 debug auth x
Du côté de GitHub, si vous n’avez pas aussi ces informations, voici ce qu’il faut faire :
Aller sur https[:]//github[.]com/settings/developers, cliquer sur “New OAuth App”.
Entrer le nom de l’application (par ex. Discourse),
URL de la page d’accueil
et
URL de rappel d’autorisation (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
et n’oubliez pas de cliquer sur “Update application”.
C’est tout.
J’espère que cela aidera !
Puis-je demander aux développeurs de vérifier s’il y a une erreur (car invalide parce qu’elle est vide) lorsque l’URL JSON utilisateur OAuth2 obligatoire n’est pas défini ? Cela génère cette erreur et entraîne une erreur 500.
ActiveRecord::NotNullViolation (PG::NotNullViolation : ERREUR : valeur nulle dans la colonne “provider_uid” de la relation “user_associated_accounts” viole la contrainte NOT NULL)
Désolé pour la dissimulation dans les URLs, on m’a dit que les nouveaux utilisateurs ne peuvent avoir que 2 liens par post.