Arrêtez Discord de demander une authentification à chaque connexion

Salut !

J’ai configuré la connexion Discord sur mon installation auto-hébergée. Ça fonctionne très bien… sauf pour un petit détail.

Lorsqu’un utilisateur se connecte avec Discord, il est redirigé vers la page d’autorisation à chaque fois, ce qui signifie qu’il doit accepter l’autorisation à chaque connexion. D’après ce que je comprends, cela ne devrait être qu’une étape unique lors de la toute première connexion de Discord à Discourse.

Comment puis-je résoudre ce problème ? J’ai suivi la documentation.

3 « J'aime »

Quelqu’un est-il confronté à ce problème ?

2 « J'aime »

Oui, j’ai essayé sur mon instance et je peux reproduire le problème.

2 « J'aime »

Voyez-vous le même comportement sur d’autres sites qui proposent la connexion avec Discord ? Si oui, il pourrait s’agir du comportement attendu du système de connexion Discord, plutôt que d’un problème spécifique à Discourse.

Ce n’est pas le comportement prévu. D’autres sites et forums que j’utilise avec une connexion via Discord ne nécessitent qu’une authentication une seule fois. Après cela, chaque fois que vous vous connectez avec Discord, vous êtes automatiquement connecté sans passer par la page d’authentification.

Cela concerne Discourse.

Y a-t-il un exemple public que vous pouvez partager afin que nous puissions l’essayer et comparer l’implémentation ?

Je ne suis pas sûr de ce que vous entendez par exemple public, je m’excuse.

Cependant, ce n’est pas la norme. Il ne devrait nécessiter une authentification Discord que la toute première fois.

Je veux dire :

Pouvez-vous partager un lien vers l’un d’entre eux ? Nous pourrons alors examiner comment ils sont implémentés et ajuster Discourse en conséquence.

Voici un forum que je fréquente, mais ce n’est pas un logiciel Discourse.

https://famiboards.com/

1 « J'aime »

Je me demande si c’est à cause du paramètre prompt manquant à none dans l’URL d’authentification ?

prompt contrôle la façon dont le flux d’autorisation gère les autorisations existantes. Si un utilisateur a déjà autorisé votre application avec les scopes demandés et que prompt est défini sur consent, il lui sera demandé de réapprouver son autorisation. S’il est défini sur none, l’écran d’autorisation sera ignoré et l’utilisateur sera redirigé vers votre URI de redirection sans demander son autorisation.

1 « J'aime »

Je pense que vous avez peut-être raison. J’ai trouvé ceci.
https://community.auth0.com/t/discord-connection-prompts-for-consent-every-login/135157
Peut-être que cela pourrait être mis à jour dans Discourse ? Pour autant que je sache, ce n’est pas quelque chose que je peux faire dans mon panneau d’administration, ni dans le portail développeur de Discord.

2 « J'aime »

Il existe un paramètre de prompt pour l’authentification Google dans Discourse, et il serait raisonnable d’en ajouter un pour Discord.

1 « J'aime »

Je viens de remarquer cela aussi.

Savez-vous par hasard où le fichier de cette configuration de connexion est installé dans Discourse ? Je pense à insérer

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

dans le fichier et à le reconstruire, pour voir si cela résout le problème.

Modération : Après réflexion, je ne pense pas pouvoir localiser le fichier qui me permettrait d’implémenter cela. Je pense qu’une correction de Discourse est nécessaire pour que cela fonctionne comme prévu.

Puisque j’ai le problème sur mon instance :

Oui, attendez des nouvelles de l’équipe :+1:

1 « J'aime »

Cool. Dois-je faire autre chose (à part attendre une mise à jour ?)

Je suppose qu’il n’y a pas de délai réel pour une telle correction, et que cela dépend probablement d’un flux de statut d’urgence. Ce n’est qu’un inconvénient mineur, je suppose. Mais ce serait génial de voir ça corrigé !

Un changement pour ajouter prompt=none me semble une bonne idée. Si quelqu’un peut écrire, tester et faire une PR, cela aidera à accélérer le changement.

Le fichier pertinent serait celui-ci, mais je ne sais pas immédiatement quel changement serait requis.

2 « J'aime »

En parcourant le fichier, j’ai ajouté

option :authorize_params, prompt: 'none'

sous

option :authorize_options, %i[scope permissions]

sur mon installation auto-hébergée.

Ça fonctionne plus ou moins…, mais pas comme nous le souhaiterions.

Cela vous redirige toujours vers la page d’authentification Discord, cependant, l’utilisateur n’a plus à cliquer sur authorize. La page se rechargera puis vous ramènera à votre page Discourse.

Un pas en avant, un autre pas en arrière. :melting_face:

Edit : Je vois que @Arkshine et moi avons testé le changement et obtenu le même résultat.

1 « J'aime »

J’ai fait un test rapide (https://discourse.arkshine.dev/) :

Il affiche la page d’authentification mais redirige automatiquement.

1 « J'aime »

Même avec le changement, cela vous redirige toujours vers la page d’authentification Discord - ce qui ne devrait pas arriver (bien que cette fois, vous n’ayez pas besoin d’appuyer manuellement sur authenticate).

Soumettre une PR avec le changement suggéré ne résoudrait malheureusement pas le problème.