วิธีรีเซ็ตรหัสผ่านของผู้ดูแลระบบที่หายไปใน Magento 2


42

ฉันพยายามรีเซ็ตรหัสผ่านผู้ดูแลระบบผ่าน Phpmyadmin ในตาราง admin_user แต่ดูเหมือนว่าจะไม่ทำงาน นอกจากนี้ฉันยังได้รับข้อผิดพลาด "หน้าเว็บนี้มีการวนรอบการเปลี่ยนเส้นทาง" เมื่อโหลดหน้าผู้ดูแลระบบ


1
เกี่ยวกับการเปลี่ยนเส้นทางตรวจสอบให้แน่ใจว่าถ้าคุณเปิดใช้งาน xdebug แสดงว่ามีอยู่xdebug.max_nesting_level=200ใน php.ini ของคุณ หากยังไม่ได้ตั้งค่าอาจเป็นไปได้ว่าคุณเห็นหน้าลงชื่อเข้าใช้ของผู้ดูแลระบบ (เนื่องจากระดับการซ้อนน้อยกว่าค่าเริ่มต้น 100 ในหน้านั้น) แต่เมื่อคุณป้อนข้อมูลรับรองและพยายามเข้าสู่ระบบแดชบอร์ดจะไม่สามารถแสดงผลได้ 100 ตรงนั้น) ตรวจสอบให้แน่ใจว่าได้ใช้โฮสต์เสมือนบางตัวไม่ใช่ "localhost" เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับคุกกี้
Alex Paliarush

ไอคอน / สไตล์แดชบอร์ดไม่ถูกโหลด / แสดงผลอย่างถูกต้องนี่จะเป็นเพราะ xdebug หรือไม่ คุณสามารถแบ่งปันวิธีการติดตั้ง xdebug ใน php.ini ถูกต้อง
Dev

เพียงเพิ่มxdebug.max_nesting_level=200การตั้งค่า php.ini ของคุณหากคุณเปิดใช้งาน XDebug
Alex Paliarush


คำตอบนี้ควรช่วยmagento.stackexchange.com/a/137562/27907และเพื่อสร้างรหัสผ่านที่แฮชคุณสามารถใช้xorbin.com/tools/sha256-hash-calculator ได้
wk

คำตอบ:


88

คุณสามารถใช้ Magento CLI เพื่อสร้างผู้ดูแลระบบใหม่ด้วยคำสั่งต่อไปนี้จากนั้นคุณสามารถไปและเปลี่ยนรหัสผ่านของผู้ใช้เดิมของคุณ

ดำเนินการนี้จากรากของการติดตั้งวีโอไอพีของคุณ:

php bin/magento admin:user:create --admin-user="admin" --admin-password="123123q" --admin-email="admin@example.com" --admin-firstname="Admin" --admin-lastname="Admin"

ไม่มีวิธีอื่นถ้าไม่มี CLI ฉันพยายามทำเช่นนั้นโดยติดตั้ง Magerun บนเครื่องของฉัน (ฉันเป็นมือใหม่กับ CLI) คำสั่งของฉันเหมือนด้านล่าง '<path_to_magento> php bin / magento admin: ผู้ใช้: สร้าง [--admin-user = "dave"] [--admin-password = "admin123"] [--admin-email = "admin1 @ localhost.com "] [--admin-FirstName =" เดฟ "] [--admin-นามสกุล =" Maritus "]
Dev

1
เส้นทางไปยังวีโอไอพีควรไปก่อน "bin / magento" ไม่ใช่ก่อน php ลบวงเล็บเหลี่ยมออกจากคำสั่งจริง
Alex Paliarush

สร้างผู้ใช้ที่เป็นผู้ดูแลระบบสำเร็จแล้วฉันใช้รายละเอียดที่สร้างขึ้นเพื่อลงชื่อเข้าใช้แดชบอร์ด แต่ใช้งานไม่ได้อยู่ในหน้าเข้าสู่ระบบเดียวกัน
Dev

4
พระเจ้าองค์เดียวเท่านั้นที่รู้ว่าทำไมพวกเขาจึงใส่แผ่นสี่เหลี่ยมจัตุรัสที่นั่น ...
MagenX

1
@MagenX - วงเล็บเป็นวิธีการชุมนุมเพื่อขอความช่วยเหลือข้อความของคำสั่งที่จะบอกคุณว่าข้อโต้แย้งเหล่านี้จะเป็นตัวเลือก มันค่อนข้างมาตรฐานจริง
nevvermind

29

เรียกใช้แบบสอบถามด้านล่างเพื่อนำไปสู่ฐานข้อมูลโดยตรง

ตัวอย่างนี้ใช้สำหรับรีเซ็ตรหัสผ่านสำหรับผู้ใช้ที่เป็นผู้ดูแลระบบ

ผู้ดูแลระบบ UPDATE SET `รหัสผ่าน '= SHA2 (' NewPassword ', 256) WHERE` ชื่อผู้ใช้' = ' ผู้ดูแลระบบ ';

NewPassword : แทนที่ด้วยรหัสผ่านของคุณ

ฉันหวังว่ามันจะทำงานให้คุณ แจ้งให้เราทราบหากคุณมีปัญหาใด ๆ


FYI; ไม่จำเป็นต้องใช้ CONCAT และเกลือ v. 2.1.7
simonthesorcerer

ใช้งานไม่ได้กับ Magento 2.3 ต้องการเกลือ ฯลฯ
Qtax

1
นอกจากนี้ระวังช่อง "lock_expires" หากคุณลองรหัสผ่านผิดซ้ำอีกครั้ง ...
KolonUK

15

ไม่ควรมีเครื่องหมายเท่ากับหรือวงเล็บเหลี่ยมแบบนี้:

php bin/magento admin:user:create --admin-user mys_username --admin-password mypass123 --admin-email my@email.com --admin-firstname john --admin-lastname cage

นี่เป็นคนเดียวที่ทำงานให้ฉัน
jfoutch

10

รันเคียวรี SQL ต่อไปนี้เพื่อรีเซ็ตรหัสผ่านผู้ดูแลระบบ:

SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET password = CONCAT(SHA2(CONCAT(@salt, 'MyNewPassword'), 256), ':', @salt, ':1') WHERE username = 'admin';

เป็นวิธีเดียวที่ฉันจะได้รับรอบข้อกำหนดรหัสผ่านใน Magento 2.3 เพื่อให้สามารถตั้งรหัสผ่านผู้ดูแลระบบอย่างง่ายสำหรับการพัฒนา n98-magerun23.0.4 ไม่อนุญาตให้หนึ่งเพื่อหลีกเลี่ยงข้อกำหนดรหัสผ่านของผู้ดูแลระบบ
Qtax

ทำงานใน Magento 2.2.5 พร้อมตั้งค่า "lock_expires" เป็น NULL
KolonUK

9

มีเครื่องมือที่ดีมากที่เรียกว่าN98-Magerun

โดยพื้นฐานแล้วคุณดาวน์โหลดโดยตรงไปยังรากของโครงการ Magento ของคุณ

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

ตั้งค่าการอนุญาตปฏิบัติการถัดไป (สำหรับผู้ใช้ UNIX เท่านั้น)

chmod +x ./n98-magerun2.phar

ตอนนี้เมื่อคุณเรียกใช้

php n98-magerun2.phar

คุณจะได้รับรายการคำสั่งทั้งหมดที่มีให้โดยเครื่องมือ

ตอนนี้สำหรับการรีเซ็ตรหัสผ่านผู้ใช้ของผู้ดูแลระบบที่ถูกลืมก่อนอื่นเราต้องได้รับชื่อผู้ใช้ของผู้ดูแลระบบเพื่อให้สามารถทำงานได้

php n98-magerun2.phar admin:user:list

รายการนี้จะให้รายการผู้ใช้ที่เป็นผู้ดูแลระบบทั้งหมดผลลัพธ์จะมีลักษณะดังนี้

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

ตอนนี้เพื่อรีเซ็ตรหัสผ่านที่เราทำ

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

คุณจะได้รับแจ้งชื่อผู้ใช้ของผู้ดูแลระบบและรหัสผ่านใหม่สำหรับผู้ใช้นั้น

Username:admin
Password:123456
Password successfully changed

หวังว่านี่จะช่วยได้


ไม่สามารถทำให้สิ่งนี้ทำงานในเซิร์ฟเวอร์ทดสอบ Bitnami ของฉันได้ - SQL เป็นวิธีเดียวที่จะไปหาฉัน
KolonUK

4

ฉันเกลียดการจำสตริงยาว bin / magento ...

นี่คือทางออกสำหรับทุกคนที่ชอบการสัมผัส:

ใส่รหัสนี้ใน pub / index.php

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

ดูส่วนท้ายของหน้าใดก็ได้: ป้อนคำอธิบายรูปภาพที่นี่

คัดลอกรหัสนั้นและไปที่ phpmyadmin:

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

BTW นี่เป็นคำถามที่ตั้งรหัสผ่านใหม่หากคุณใช้ผู้ดูแลระบบ: ผู้ใช้: สร้างมันจะรีเซ็ตหรือสร้าง แต่ไม่ใช่ ...


2
นี่จะไม่ปลอดภัยที่จะทำในเว็บไซต์ที่เปิดเผยต่อสาธารณะ ... คุณสามารถดาวน์โหลดn98-magerun2และเรียกใช้n98-magerun2.phar dev:consoleและรันโค้ดที่นั่น: $di->get("\Magento\Framework\Encryption\Encryptor")->getHash("yourpass");หรือเพียงแค่ใช้n98-magerun2.phar admin:user:change-password
7ochem

2

หมายถึงคำตอบของ Alex มันใช้งานได้กับการปรับเปลี่ยนเล็กน้อย คุณต้องเข้าไปที่โฟลเดอร์ของการติดตั้ง M2 จากนั้นเรียกใช้รหัสด้านล่าง:

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

คุณไม่จำเป็นต้องอยู่/หน้าbinโฟลเดอร์ แต่คุณต้องการphpคำสั่งก่อน "ประโยค" ทั้งหมด

การสร้างรหัสผ่านใช้งานได้สำหรับฉัน แต่หน้าผู้ดูแลระบบไม่ได้ลงชื่อเข้าใช้ใน: /


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'

ฉันได้แก้ไขคำถามของฉัน ถ้าเราทำเมื่อทำรหัสผ่านหาย
Dev

0

เพียงเปิดการเข้าถึงฐานข้อมูลของคุณและกดค้นหาด้านล่าง

อัปเดต admin_user ชุดรหัสผ่าน = CONCAT (SHA2 ('yournewpassword', 256), ': xxxxxxx: 1') WHERE ชื่อผู้ใช้ = 'yourusername';

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.