Utilisez le plugin OAuth pour Auth0 de manière plus fluide

J’essaie actuellement d’intégrer l’authentification Auth0 à mon application Discourse. J’ai essentiellement suivi le workflow ici et j’ai réussi à le faire fonctionner.

Cependant, je n’en suis pas entièrement satisfait pour plusieurs raisons :

  1. Après avoir cliqué sur « Se connecter/S’inscrire », il n’y a qu’un bouton « avec Auth0 ». Je souhaite que le panneau de connexion/inscription Auth0 soit la seule chose qui apparaisse après avoir cliqué sur « Se connecter/S’inscrire » en haut de la page Discourse.
  2. Après l’authentification avec Auth0, les gens ne devraient pas avoir à créer un nouvel utilisateur, tout devrait fonctionner grâce à Auth0.
  3. L’authentification par e-mail devrait être ou avoir été gérée via Auth0, et non via Discourse.
  4. Si vous vous êtes déjà connecté via Auth0 dans ce navigateur, éventuellement avec la même application d’Auth0, dans un autre module de notre plateforme, vous devriez être automatiquement connecté.
  5. Il devrait toujours y avoir la possibilité de se connecter en tant qu’administrateur, car cela pourrait s’avérer plus difficile après la mise en œuvre du point n° 1.

Pourriez-vous m’aider à tout configurer ou au moins en partie ?

Je pense que vous pouvez vérifier ce paramètre dans Discourse : auth_overrides_email.

Et vous pouvez utiliser ce paramètre pour cela : auth_skip_create_confirm

Lors de l’inscription via une authentification externe, ignorer la fenêtre contextuelle de création de compte. À utiliser de préférence avec auth_overrides_email, auth_overrides_username et auth_overrides_name.

Il y a aussi le paramètre auth_immediately qui pourrait faire ce que vous recherchez :

Rediriger automatiquement vers le système de connexion externe sans interaction de l’utilisateur. Ceci ne prend effet que lorsque login_required est vrai et qu’il n’y a qu’une seule méthode d’authentification externe.

Vous pouvez visiter /u/admin-login pour contourner l’oauth.

3 « J'aime »

Merci beaucoup pour votre contribution, @blake :slight_smile:

Avez-vous également des suggestions pour les points 1 et 4 ou sont-ils plus difficiles ?

Je pense que ces paramètres auth_immediatley et auth_skip_create_confirm répondront aux points 1 et 4. Pouvez-vous les activer et voir si cela améliore les choses ?

@blake Merci beaucoup pour votre contribution.

J’ai tout fait comme indiqué sur la page de configuration, plus vos suggestions. Cependant, lorsque j’essaie de me connecter, ceci apparaît

Alors qu’à https://community.auth0.com/ voici ce qui s’affiche pour tenter de se connecter (et qui est également prévu pour mon site)

De plus, j’ai essayé de me connecter avec mon e-mail de test et il demande toujours une authentification par e-mail, même si l’e-mail est authentifié sur Auth0

Savez-vous comment le modifier en conséquence ?

Essayez de désactiver le paramètre enable local logins. Cela devrait supprimer la possibilité de se connecter, ne laissant à vos utilisateurs que la possibilité de se connecter avec OAuth2.

Je vous recommande de le faire dans une session de navigateur distincte. De cette façon, vous pourrez annuler les modifications que vous apportez si vous rencontrez des problèmes de configuration sans perdre la possibilité de vous connecter.

Bonjour @blake

Merci pour ces éclaircissements. J’ai fait quelques progrès, mais malheureusement, il y a toujours un léger problème de connexion. Chaque fois que j’appuie sur le bouton de connexion, les informations correctes de l’utilisateur sont récupérées d’Auth0, mais Discourse essaie toujours de créer un compte.
Je suis redirigé vers un écran Bienvenue, créons votre compte avec une erreur indiquant que l’adresse e-mail principale est déjà utilisée.

Voici ma configuration actuelle pour toutes les substitutions :

Merci de bien vouloir m’aider.

Salut Robert !

Vous pouvez résoudre ce problème en activant ce paramètre : oauth2 allow association change

Bonjour @leonardo, malheureusement, le problème persiste après avoir activé ce paramètre.

ça fonctionne bien maintenant. J’ai ajouté la règle oauth2 email verified et ça fonctionne. Intéressant.

J’adore ce plugin. Je remarque que lorsque je me déconnecte, cela me déconnecte bien de Discourse. Mais lorsque je clique sur se connecter… cela me reconnecte immédiatement (sans passer par Auth0). J’ai autorisé l’URI de déconnexion dans mon application Auth0, mais il semble que https://AUTH0_DOMAIN/v2/logout ne soit jamais appelée par ce plugin. Qui maintient cela ? Est-ce que cela peut être ajouté ?