Comment réinitialiser le mot de passe administrateur perdu dans Magento 2?

42

J'ai essayé de réinitialiser le mot de passe administrateur via Phpmyadmin dans la table admin_user mais cela ne semble pas fonctionner. Également sur chrome, le message d'erreur "Cette page Web comporte une boucle de redirection" s'affiche lors du chargement de la page d'administration.

Dev
la source
1
En ce qui concerne les redirections, assurez-vous que si xdebug est activé, xdebug.max_nesting_level=200votre fichier php.ini en contient une. S'il n'est pas défini, il est possible que la page de connexion de l'administrateur s'affiche (le niveau d'imbrication étant inférieur à 100 par défaut sur cette page), mais lorsque vous saisissez les informations d'identification et essayez de vous connecter, le tableau de bord ne peut pas être rendu (le niveau d'imbrication est supérieur à celui par défaut). 100 là-bas). Veillez également à utiliser un hôte virtuel, et non "localhost", pour éviter les problèmes de cookies.
Alex Paliarush
Les icônes / styles de tableau de bord n'ont pas été chargés / restitués correctement Cela sera-t-il dû à xdebug? Pouvez-vous partager comment configurer correctement xdebug sur php.ini
Dev
Ajoutez simplement xdebug.max_nesting_level=200à votre configuration php.ini si vous avez activé XDebug.
Alex Paliarush
cette réponse devrait aider magento.stackexchange.com/a/137562/27907 et pour générer le mot de passe haché, vous pouvez utiliser xorbin.com/tools/sha256-hash-calculator
sem

Réponses:

88

Vous pouvez utiliser la CLI de Magento pour créer un nouvel utilisateur admin avec la commande suivante. Vous pouvez ensuite modifier le mot de passe de votre utilisateur d'origine.

Exécutez ceci à partir de la racine de votre installation de magento:

php bin/magento admin:user:create --admin-user="admin" --admin-password="123123q" --admin-email="[email protected]" --admin-firstname="Admin" --admin-lastname="Admin"
Alex Paliarush
la source
Pas d'autre moyen sans CLI? J'ai essayé de le faire en installant Magerun sur ma machine (je suis novice en CLI). Ma commande est comme ci-dessous, '<path_to_magento> php bin / magento admin: utilisateur: créer [--admin-user = "dave"] [--admin-password = "admin123"] [--admin-email = "admin1 @ localhost.com "] [--admin-firstname =" dave "] [--admin-lastname =" maritus "] '
Dev
1
Le chemin vers magento devrait aller avant "bin / magento", pas avant php. Supprimez également les crochets de la commande actuelle.
Alex Paliarush
Utilisateur administrateur créé avec succès, j'ai utilisé les détails créés pour la connexion au tableau de bord, mais cela ne fonctionne pas, restez sur la même page de connexion.
Dev
4
Dieu seul sait pourquoi ils y ont mis des crochets ...
MagenX
1
@MagenX - Les crochets sont un moyen classique pour les messages d'aide d'une commande de vous indiquer que ces arguments sont facultatifs . C'est assez standard en fait .
Nevermind
29

Exécutez la requête ci-dessous pour diriger la base de données.

Un exemple est pour réinitialiser le mot de passe pour l' utilisateur admin .

UPDATE admin_user SET `password` = SHA2 (' NewPassword ', 256) WHERE` username` = ' admin ';

NewPassword : remplacez-le par votre mot de passe.

J'espère que cela fonctionnera pour vous. Faites-moi savoir si vous avez des difficultés.

Suresh Chikani
la source
FYI; le CONCAT et le sel n'est pas nécessaire. v. 2.1.7
simonthesorcerer
N'a pas fonctionné pour Magento 2.3, a besoin de sel, etc.
Taxe
1
aussi, méfiez-vous du champ "lock_expires" si vous avez répété plusieurs fois le même mauvais mot de passe ...
KolonUK
15

Il devrait y avoir aucun signe égal ou crochets comme ceci:

php bin/magento admin:user:create --admin-user mys_username --admin-password mypass123 --admin-email my@email.com --admin-firstname john --admin-lastname cage
Claudiu Creanga
la source
C'est le seul qui a fonctionné pour moi
jfoutch
10

Exécutez les requêtes SQL suivantes pour réinitialiser le mot de passe administrateur:

SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET password = CONCAT(SHA2(CONCAT(@salt, 'MyNewPassword'), 256), ':', @salt, ':1') WHERE username = 'admin';
Jun Xie
la source
C’était le seul moyen de contourner les exigences relatives aux mots de passe dans Magento 2.3: pouvoir définir un mot de passe administrateur simple pour le développement. n98-magerun23.0.4 ne permettait pas d’éviter les exigences du mot de passe administrateur.
Taxe le
Utilisation de Magento 2.2.5 et définition de "lock_expires" sur NULL
KolonUK
9

Il existe un très bel outil appelé N98-Magerun

En gros, vous le téléchargez directement à la racine de votre projet Magento

wget https://files.magerun.net/n98-magerun2.phar

Définissez ensuite les autorisations exécutables (pour les utilisateurs UNIX uniquement)

chmod +x ./n98-magerun2.phar

Maintenant quand tu cours

php n98-magerun2.phar

Vous obtiendrez une liste de toutes les commandes disponibles offertes par l'outil.

Maintenant, pour réinitialiser un mot de passe d’utilisateur admin oublié, nous devons d'abord obtenir le nom d'utilisateur de cet utilisateur admin. Pour pouvoir l'exécuter,

php n98-magerun2.phar admin:user:list

Cela vous fournira une liste de tous les utilisateurs admin disponibles, le résultat ressemblera à quelque chose comme

+----+-----------------+-------------------------------+--------+
| id | username        | email                         | status |
+----+-----------------+-------------------------------+--------+
| 1  | admin           | admin@example.com             | active |
| 2  | nextadmin       | nextadmin@example.com         | active |
+----+-----------------+-------------------------------+--------+

Maintenant, pour réinitialiser le mot de passe que nous faisons

php n98-magerun2.phar admin:user:change-password

Vous serez invité à entrer le nom d'utilisateur de l'administrateur et le nouveau mot de passe de cet utilisateur.

Username:admin
Password:123456
Password successfully changed

J'espère que cela t'aides.

Atish Goswami
la source
Je ne pouvais pas le faire fonctionner sur mon serveur de test Bitnami - SQL était la seule solution pour moi.
KolonUK
4

Je déteste me souvenir d'une longue chaîne bin / magento ...

Voici une solution pour tous ceux qui aiment toucher:

mettre ce code dans pub / index.php

\Magento\Framework\App\ObjectManager::getInstance()->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");

Regardez le pied de page de anypage: entrez la description de l'image ici

Copiez ce code et accédez à phpmyadmin:

update admin_user set password = '<code above>' where username='admin';

BTW. Ceci est une question de réinitialisation de mot de passe si vous utilisez admin: utilisateur: créez-le réinitialisez ou créez mais Uhm ... Pas exactement.

Christian Nguyen
la source
2
Cela ne serait pas vraiment sûr de le faire sur un site Web ouvert au public ... Vous pouvez également télécharger n98-magerun2 et exécuter n98-magerun2.phar dev:consoleet exécuter le code ici: $di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");ou tout simplement utilisern98-magerun2.phar admin:user:change-password
7ochem
2

En se référant à la réponse d'Alex, cela fonctionne avec une petite modification. Vous devez naviguer dans le dossier d'installation de M2, puis exécutez le code ci-dessous:

php bin/magento admin:user:create --admin-user=admin --admin-password=admin123 --admin-email=admin@magento.tld --admin-firstname=admin --admin-lastname=admin

Vous n'avez pas besoin /avant le bindossier, mais vous avez besoin d'une phpcommande avant la "phrase" entière.

La génération de laissez-passer a fonctionné pour moi, mais la page d’administration ne m’a pas connecté: /

Takács Zsolt
la source
0
 1. login to magento 2 admin.
 2. Go to system > All Users.
 3. Select your User
 4. reset password from 'User Info' > 'Account Information'
Gopal Kacha
la source
J'ai modifié ma question. Que faire si on perd un mot de passe.
Dev
0

Ouvrez simplement votre accès à la base de données et cliquez sur la requête ci-dessous

UPDATE admin_user SET mot_de_passe = CONCAT (SHA2 ('votrene nouveau mot de passe', 256), ': xxxxxxx: 1') WHERE nom_utilisateur = 'nom_utilisateur';

zuber bandi
la source