📅  最后修改于: 2023-12-03 15:23:13.297000             🧑  作者: Mango
为 Magento 2 创建管理员密码是一项必须完成的任务。这篇文章将告诉您如何通过 PHP 代码来创建 Magento 2 的管理员密码。
创建一个新的 PHP 文件,例如 create_admin_password.php
。
在文件中添加以下代码来引入 Magento 2 的自动加载文件:
require __DIR__ . '/app/bootstrap.php';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
接下来,为 Magento 2 使用的 ObjectManager
创建一个实例:
$objectManager = $bootstrap->getObjectManager();
现在,我们可以使用 get
方法从 ObjectManager
中获取 Magento\User\Model\UserFactory
类的实例,以便创建管理员用户:
$userFactory = $objectManager->get('\Magento\User\Model\UserFactory');
$userModel = $userFactory->create();
使用以下代码设置管理员用户名和电子邮件地址:
$userModel->setUserName('admin');
$userModel->setEmail('admin@example.com');
为了设置管理员密码,使用以下代码将纯文本密码转换为哈希密码:
$password = 'admin123'; // 请使用自己的密码
$userModel->setPassword($password);
然后,使用以下代码将管理员密码哈希保存到数据库:
$salt = md5(uniqid());
$hash = md5($salt . $password) . ':' . $salt;
$userModel->setPasswordHash($hash);
使用以下代码将管理员角色分配给用户:
$roleFactory = $objectManager->get('\Magento\Authorization\Model\RoleFactory');
$userRole = $roleFactory->create();
$userRole->setName('Administrators')
->setPid(0)
->setRoleType(\Magento\Authorization\Model\Acl\Role\Group::ROLE_TYPE)
->setUserType(\Magento\User\Model\User::USER_TYPE_ADMIN);
$userModel->setRole($userRole);
现在,我们可以保存新创建的管理员用户:
$userModel->save();
完整的 PHP 代码如下:
<?php
require __DIR__ . '/app/bootstrap.php';
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$userFactory = $objectManager->get('\Magento\User\Model\UserFactory');
$userModel = $userFactory->create();
$userModel->setUserName('admin');
$userModel->setEmail('admin@example.com');
$password = 'admin123';
$userModel->setPassword($password);
$salt = md5(uniqid());
$hash = md5($salt . $password) . ':' . $salt;
$userModel->setPasswordHash($hash);
$roleFactory = $objectManager->get('\Magento\Authorization\Model\RoleFactory');
$userRole = $roleFactory->create();
$userRole->setName('Administrators')
->setPid(0)
->setRoleType(\Magento\Authorization\Model\Acl\Role\Group::ROLE_TYPE)
->setUserType(\Magento\User\Model\User::USER_TYPE_ADMIN);
$userModel->setRole($userRole);
$userModel->save();
运行这个 PHP 脚本以创建 Magento 2 的管理员密码:
php create_admin_password.php
在 Magento 2 中,创建管理员密码是一个简单的过程,只需简单的 PHP 代码即可完成。使用以上步骤,您现在可以从客户端访问 Magento 2 后台功能并开始管理您的商店!