web-dev-qa-db-fra.com

Ignorer la page de confirmation du mot de passe

Le processus standard de réinitialisation du mot de passe Joomla se déroule en trois étapes:

  1. Entrez l'adresse e-mail et demandez à réinitialiser le jeton
  2. Complétez la page de confirmation avec le nom d'utilisateur et le jeton de réinitialisation (soit en copiant le jeton de l'email de réinitialisation du mot de passe reçu dans l'onglet du navigateur déjà ouvert, soit en suivant le lien de réinitialisation de l'email pré-remplissant le champ du jeton mais nécessitant toujours la utilisateur pour entrer son nom d'utilisateur).
  3. Définir et vérifier le nouveau mot de passe

Je ne vois vraiment pas l'intérêt d'obliger l'utilisateur à entrer son nom d'utilisateur s'il suivait le lien de réinitialisation qui lui était fourni par courrier électronique. S'ils ont reçu le lien, ils ont le contrôle de l'adresse électronique associée au compte d'utilisateur. Leur demander leur nom d'utilisateur est superflu.

Certes, le lien n'inclut pas actuellement l'adresse électronique ou le nom d'utilisateur en tant que paramètre de requête, mais en supposant que ce soit le cas, l'étape 2 pourrait être totalement ignorée, ce qui simplifiera le processus. Vous pourriez faire valoir qu'exiger que l'utilisateur fournisse également son nom d'utilisateur pendant le processus de réinitialisation augmente la sécurité globale, mais ensuite, si vous utilisez l'adresse e-mail comme nom d'utilisateur, comme dans mon cas, cela est arbitraire et gênant pour les utilisateurs. Le processus de réinitialisation pourrait être effectué sans exposer le nom d'utilisateur (en incluant simplement l'adresse électronique en tant que paramètre de requête supplémentaire), si cela posait problème, à tout le moins.

J'ai examiné le code Joomla pour le module com_users et, malheureusement, sans modifier le code Joomla (ce que j'évite strictement), je ne vois pas comment manipuler le lien de réinitialisation du mot de passe inclus dans le message de réinitialisation, via un plugin ou autrement, avant il est envoyé. Quelqu'un peut-il penser à un moyen pratique d'y parvenir?

5
John Rix

Je viens de rencontrer cette extension, ce qui me permettrait de créer un remplacement de la classe du contrôleur d'enregistrement com_users (afin d'ajouter le paramètre de requête supplémentaire au lien de réinitialisation), comme alternative à l'autre solution proposée:

https://gruz.ml/en/extensions/mvcoverride.html

Développeurs expérimentés uniquement. Pourrait être utile à quelqu'un venant de cette façon.

1
John Rix

Si vous avez seulement besoin de modifier le module com_users, vous pouvez certainement le remplacer en le copiant-collant dans votre modèle, par exemple. dans: template/html/com_users/registration/default.php?

Ensuite, vous souhaitez définir le champ username masqué et lui attribuer la valeur que vous pouvez charger à partir de la base de données à l'aide de la requête contenant la partie unique du lien de réinitialisation.

(Alternativement, ceci pour Joomla 1 pourrait contenir des indices, si vous êtes développeur: https://forum.joomla.org/viewtopic.php?t=50531 )

0
Nathan