Smettere di Discord che chiede l'autenticazione ad ogni accesso

Ciao!

Ho configurato l’accesso a Discord sulla mia installazione self-hosted. Funziona benissimo… tranne per una piccola cosa.

Quando un utente accede con Discord, viene portato alla pagina di autorizzazione ogni volta, il che significa che deve accettare l’autorizzazione ogni volta che accede. Per quanto ne so, questo dovrebbe essere un processo in un solo passaggio la prima volta che collegano l’accesso a Discord con Discourse.

In ogni caso, come posso risolvere questo problema? Ho seguito la documentazione.

3 Mi Piace

Qualcuno sta affrontando questo problema?

2 Mi Piace

Sì, ho provato sulla mia istanza e riesco a replicare il problema.

2 Mi Piace

Vedi lo stesso comportamento su altri siti che offrono il “login con Discord”? Se sì, potrebbe essere il comportamento previsto del sistema di login di Discord, piuttosto che un problema specifico di Discourse.

Questo non è il comportamento previsto. Altri siti e forum che utilizzo per l’accesso con Discord richiedono solo una volta l’autenticazione. Dopo di che, ogni volta che effettui l’accesso con Discord sei automaticamente loggato senza passare dalla pagina di autenticazione.

Ha a che fare con Discourse.

C’è un esempio pubblico che puoi condividere così possiamo provarlo e confrontare l’implementazione?

Non sono sicuro di cosa intendi per esempio pubblico, mi scuso.

Tuttavia questa non è la norma. Dovrebbe richiedere l’autenticazione Discord solo la prima volta.

Voglio dire:

Puoi condividere un link a uno di essi? Poi potremmo essere in grado di vedere come sono implementati e adattare Discourse di conseguenza.

Ecco una bacheca che frequento, ma non è un software Discourse.

https://famiboards.com/

1 Mi Piace

Mi chiedo se sia dovuto al parametro prompt mancante su nessuno nell’URL di autorizzazione?

prompt controlla come il flusso di autorizzazione gestisce le autorizzazioni esistenti. Se un utente ha precedentemente autorizzato la tua applicazione con gli ambiti richiesti e prompt è impostato su consent, gli verrà richiesto di riapprovare la loro autorizzazione. Se impostato su none, salterà la schermata di autorizzazione e li reindirizzerà al tuo URI di reindirizzamento senza richiedere la loro autorizzazione.

1 Mi Piace

Potresti averci preso. Ho trovato questo.
https://community.auth0.com/t/discord-connection-prompts-for-consent-every-login/135157
Forse questo potrebbe essere aggiornato all’interno di Discourse? Per quanto ne so, non è qualcosa che posso fare nel mio pannello di amministrazione o nel portale per sviluppatori di Discord.

2 Mi Piace

C’è un’impostazione di prompt per Google Auth in Discourse, e penso che sarebbe ragionevole aggiungerne una anche per Discord.

1 Mi Piace

Anche io me ne sono accorto.

Per caso sai dove sia installato il file per questa configurazione di login all’interno di Discourse? Sto pensando di inserire

"upstream_params": {
	"prompt": {
		"value": "none"
	}
},

nel file e ricostruire, vedendo se così si risolve.

Modifica: Rimuginandoci, non credo di riuscire a trovare il file che mi permetterebbe di implementarlo. Penso che sia necessaria una correzione da parte di Discourse affinché funzioni come previsto.

Poiché ho il problema sulla mia istanza:

Sì, attendi notizie dal team :+1:

1 Mi Piace

Fantastico. Devo fare qualcos’altro (oltre ad aspettare un aggiornamento?)

Presumo che non ci sia una vera ETA per una soluzione come questa, e probabilmente dipende da un flusso di stato di urgenza. È solo un piccolo inconveniente, suppongo. Ma sarebbe fantastico vederlo risolto!

Una modifica per aggiungere prompt=none mi sembra una buona idea. Se qualcuno fosse in grado di scrivere, testare e creare una PR, ciò contribuirebbe ad accelerare la modifica.

Il file pertinente sarebbe questo, ma non so al momento esattamente quale modifica sarebbe necessaria.

2 Mi Piace

Guardando il file, ho aggiunto

option :authorize_params, prompt: 'none'

sotto

option :authorize_options, %i[scope permissions]

nella mia installazione self-hosted.

Funziona in qualche modo…, ma non come vorremmo.

Ti porta ancora alla pagina di autenticazione di Discord, tuttavia, l’utente non deve più cliccare su authorize. La pagina si ricaricherà quindi ti riporterà alla tua pagina Discourse.

Un passo avanti, un altro passo indietro. :melting_face:

Modifica: Vedo @Arkshine e ho testato la modifica e ho ottenuto lo stesso risultato.

1 Mi Piace

Ho fatto un rapido test (https://discourse.arkshine.dev/):

Mostra la pagina di autenticazione ma reindirizza automaticamente.

1 Mi Piace

Anche con la modifica, ti reindirizza comunque alla pagina di autenticazione di Discord - cosa che non dovrebbe fare (anche se questa volta non è necessario premere manualmente authenticate).

L’invio di una PR con la modifica suggerita purtroppo non risolverebbe il problema.