Fournisseur d'authentification factice à des fins de développement/test

:information_source: uniquement pour le développement local. Inutile pour les sites de production

Lorsque vous travaillez sur Discourse en local, il est utile de pouvoir tester toutes les méthodes de connexion différentes. La plupart du temps, nous ne nous soucions pas du processus d’authentification réel ; nous voulons simplement savoir comment Discourse réagira à différentes entrées. Par exemple :

  • Que se passe-t-il si l’e-mail n’est pas vérifié ?
  • Que se passe-t-il si le fournisseur d’authentification ne nous envoie pas d’adresse e-mail ?
  • Que se passe-t-il si le fournisseur d’authentification ne nous envoie pas de nom d’utilisateur ?
  • Que se passe-t-il si l’e-mail correspond, mais pas l’UID ?
  • Comment fonctionnent les invitations lorsque l’authentification externe est utilisée ?
  • À quoi ressemble l’écran de connexion ?
  • (Je pourrais continuer indéfiniment ici… mais vous avez compris l’idée)

Jusqu’à présent, la seule véritable option consistait à « configurer une authentification réelle Google/Twitter/OAuth2/etc. sur votre environnement de développement ». Cela fonctionne, mais c’est extrêmement fastidieux, et vous vous retrouvez alors à créer plusieurs comptes Google/Twitter pour tester différentes combinaisons.

J’ai créé quelque chose de plus fluide :

Si vous installez ce plugin localement, il vous fournira un fournisseur d’authentification fictif. Pour Discourse, il fonctionne exactement comme n’importe quel autre fournisseur (par exemple Google, Twitter, OAuth2, OIDC, etc.).

Lorsque vous lancez le flux de connexion, cet écran s’affiche, vous permettant de saisir manuellement toutes les données que vous souhaitez. Les valeurs soumises sont mémorisées via un cookie, ce qui vous permet de répéter facilement la même action. Les champs correspondent au schéma de hachage d’authentification Omniauth.

Il utilise le système ManagedAuthenticator, de sorte que les données sont stockées dans la table user_associated_accounts avec un provider_name de developmentauth.


Il prend également en charge DiscourseConnect ! Pour l’essayer, installez simplement le plugin et activez le paramètre enable_discourse_connect. La prochaine fois que vous vous connecterez, vous verrez tous les champs DiscourseConnect prêts à l’emploi.


N’hésitez pas à l’essayer la prochaine fois que vous travaillez sur l’authentification, et faites-moi savoir s’il y a des améliorations possibles :slight_smile:

:philosoraptor: Notez qu’il s’agit du plugin d’authentification le moins sécurisé jamais inventé. Par conséquent, il refusera de démarrer dans un environnement de production, et vous devrez définir la variable d’environnement DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE à 1 pour qu’il fonctionne.

17 « J'aime »

Bonjour, ce plugin ne fonctionne pas avec Ember CLI. Lorsque je saisis les détails puis clique sur « Connecter », j’observe ceci :

La même erreur que sur Unable setup development enviroment(docker) as DiscourseConnect provider

Pourriez-vous s’il vous plaît jeter un coup d’œil à cela ?