¿Cómo restablecer la contraseña de administrador perdida en Magento 2?

42

Traté de restablecer la contraseña de administrador a través de Phpmyadmin en la tabla admin_user pero parece que esto no funciona. También en Chrome aparece el error "Esta página web tiene un bucle de redireccionamiento" al cargar la página de administración.

Dev
fuente
1
Con respecto a las redirecciones, asegúrese de que si tiene xdebug habilitado, entonces hay xdebug.max_nesting_level=200en su php.ini. Si no está configurado, es posible que vea la página de inicio de sesión de administrador (porque el nivel de anidación es inferior al predeterminado 100 en esa página), pero cuando ingresa las credenciales e intenta iniciar sesión, el tablero no se puede representar (el nivel de anidación es mayor que el predeterminado 100 allí). También asegúrese de utilizar algún host virtual, no "localhost", para evitar problemas con las cookies.
Alex Paliarush
Los íconos / estilo del tablero no se cargaron / representaron correctamente ¿Esto se debe a xdebug? ¿Puedes compartir cómo configurar xdebug en php.ini correctamente
Dev
Simplemente agregue xdebug.max_nesting_level=200a su configuración php.ini si tiene XDebug habilitado.
Alex Paliarush
esta respuesta debería ayudar a magento.stackexchange.com/a/137562/27907 y para generar la contraseña hash puede usar xorbin.com/tools/sha256-hash-calculator
wk

Respuestas:

88

Puede usar la CLI de Magento para crear un nuevo usuario administrador con el siguiente comando, luego puede ir y cambiar la contraseña de su usuario original.

Ejecute esto desde la raíz de su instalación 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
fuente
No hay otra manera sin CLI? Traté de hacerlo instalando Magerun en mi máquina (soy novato en CLI). Mi comando es como a continuación, '<path_to_magento> php bin / magento admin: usuario: create [--admin-user = "dave"] [--admin-password = "admin123"] [--admin-email = "admin1 @ localhost.com "] [--admin-firstname =" dave "] [--admin-lastname =" maritus "] '
Dev
1
La ruta a magento debe ir antes de "bin / magento", no antes de php. También elimine los corchetes del comando real.
Alex Paliarush
Usuario administrador creado con éxito, utilicé los detalles creados para iniciar sesión en el tablero pero no funciona, permanezca en la misma página de inicio de sesión.
Dev
44
solo dios sabe por qué pusieron corchetes allí ...
MagenX
1
@MagenX: los corchetes son una forma convencional de mensajes de ayuda de un comando para indicarle que esos argumentos son opcionales . Es bastante estándar en realidad .
nevvermind
29

Ejecute la consulta a continuación para dirigir la base de datos.

Un ejemplo es para restablecer contraseña para el usuario administrador .

ACTUALIZACIÓN admin_user SET `contraseña` = SHA2 (' NewPassword ', 256) DONDE` username` = ' admin ';

Contraseña nueva : reemplácela con su contraseña.

Espero que funcione para ti. Avísame si tienes alguna dificultad.

Suresh Chikani
fuente
FYI; el CONCAT y la sal no son necesarios. v. 2.1.7
simonthesorcerer
No funcionó para Magento 2.3, necesita sal, etc.
Qtax
1
también, tenga cuidado con el campo "lock_expires" si ha repetido la misma contraseña incorrecta ...
KolonUK
15

No debe haber signos iguales o corchetes como este:

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
fuente
Este es el único que funcionó para mí
jfoutch
10

Ejecute las siguientes consultas SQL para restablecer la contraseña de administrador:

SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET password = CONCAT(SHA2(CONCAT(@salt, 'MyNewPassword'), 256), ':', @salt, ':1') WHERE username = 'admin';
Jun Xie
fuente
Era la única forma en que podía sortear los requisitos de contraseña en Magento 2.3, para poder establecer una contraseña de administrador simple para el desarrollo. n98-magerun23.0.4 no permitió que uno evitara los requisitos de contraseña de administrador.
Qtax
Trabajó en Magento 2.2.5, además de configurar "lock_expires" en NULL
KolonUK
9

Hay una herramienta muy buena llamada N98-Magerun

Básicamente, lo descarga directamente a la raíz de su proyecto Magento

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

Siguiente conjunto de permisos ejecutables (solo para usuarios de UNIX)

chmod +x ./n98-magerun2.phar

Ahora cuando corres

php n98-magerun2.phar

Obtendrá una lista de todos los comandos disponibles que ofrece la herramienta.

Ahora, para restablecer una contraseña de usuario administrador olvidada, primero necesitamos obtener el nombre de usuario del usuario administrador, para poder ejecutar

php n98-magerun2.phar admin:user:list

Esto le proporcionará una lista de todos los usuarios administradores disponibles, la salida se verá algo así

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

Ahora para restablecer la contraseña que hacemos

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

Se le solicitará el nombre de usuario del usuario administrador y una nueva contraseña para ese usuario.

Username:admin
Password:123456
Password successfully changed

Espero que esto ayude.

Atish Goswami
fuente
No se pudo ejecutar esto en mi servidor de prueba de Bitnami: SQL era la única forma de hacerlo.
KolonUK
4

Odio recordar la cadena larga bin / magento ...

Aquí hay una solución para cualquiera que le guste tocar:

pon este código en pub / index.php

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

Mira el pie de página de cualquier página: ingrese la descripción de la imagen aquí

Copie ese código y vaya a phpmyadmin:

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

Por cierto. Esta es una pregunta de restablecimiento de contraseña si usa admin: usuario: créelo, restablezca o cree pero Uhm ... No exactamente.

Christian Nguyen
fuente
2
Esto no sería realmente seguro hacerlo en un sitio web abierto públicamente ... También puede descargar n98-magerun2 y ejecutar n98-magerun2.phar dev:consoley ejecutar el código allí: $di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");o simplemente usarn98-magerun2.phar admin:user:change-password
7ochem
2

En referencia a la respuesta de Alex, funciona con una pequeña modificación. Debe navegar en la carpeta de instalación de M2, luego ejecutar el siguiente código:

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

No necesita /antes de la bincarpeta, pero necesita un phpcomando antes de toda la "oración".

La generación de pases funcionó para mí, pero la página de administración no me conectó: /

Takács Zsolt
fuente
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
fuente
He editado mi pregunta. ¿Qué pasa si lo hacemos cuando se pierde una contraseña?
Dev
0

Simplemente abra el acceso a su base de datos y presione la consulta a continuación

ACTUALIZAR admin_user SET contraseña = CONCAT (SHA2 ('yournewpassword', 256), ': xxxxxxx: 1') WHERE username = 'yourusername';

zuber bandi
fuente