Guida all'uso di OAuth2 con GitHub

Per tutte quelle persone che hanno problemi a far funzionare OAuth2 con GitHub, ecco una soluzione.

Problema: il plugin OAuth2 di Discourse genera un errore 500 quando è abilitato con Github e i campi nella configurazione non sono impostati correttamente. Poiché la documentazione è scarsa su cosa e come configurare, ecco i campi importanti (e alcuni opzionali):

OAuth2 client ID ID client da GitHub
OAuth2 client secret Secret client da 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

Per il debug (solo):
OAuth2 debug auth x

Sul lato di GitHub, nel caso manchi questa informazione, ecco cosa è necessario:
Vai su https[:]//github[.]com/settings/developers, clicca su “Nuova applicazione OAuth”
Inserisci il nome dell’applicazione (es. Discourse),
URL della homepage
e
URL di callback per l’autenticazione (https[:]//YOUR.DISCOURSESERV[.]ER/auth/oauth2_basic/callback)
e non dimenticare di cliccare su “Aggiorna applicazione”.

Tutto qui.
Spero possa essere utile!

Posso chiedere agli sviluppatori di controllare, per favore, il ritorno (non valido perché vuoto) quando l"OAuth2 user JSON URL" obbligatorio non è impostato? Genera questo errore e restituisce un 500.

ActiveRecord::NotNullViolation (PG::NotNullViolation: ERRORE: inserimento null nella colonna “provider_uid” della relazione “user_associated_accounts” viola il vincolo di non null)

Scusate per l’obfuscation negli URL, mi è stato detto che i nuovi utenti possono avere solo 2 link per post.