从今天开始,当我试图进入网站的BO时,它给了我这个错误:
The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later.
我已经尝试过从ssh运行这个命令:
php bin/magento admin:user:unlock ADMINUSERNAME
我还更改了admin_user
表中的列:
is_active = 1
failures_num = 0
first_failure = NULL
lock_expires = NULL
并试图重置我的密码并创建另一个管理员帐户,但也出现了同样的错误,但它一直在出错。我该如何解决?
编辑
我注意到这个问题出现在我在该服务器上的其他网站上,所以我认为这更像是一个服务器问题,而不是magento。网站是在Debian 9.13与plesk。
此错误是由于Magento 2的安全系统造成的。Magento 2将暂时禁用不符合其密码复杂性要求的帐户
默认情况下,在Magento 2中,满足安全要求的密码必须包括:
- 大写字母
- 小写字母
- 数字
- 特殊字符
- 最少8个字符
以下是此问题的解决方案。试试其中的任何一个,看看它是否适合你。
解决方案1:解锁账户
Magento 2有时会出于安全目的锁定帐户。在这种情况下,您可以通过在命令或终端中转到Magento 2根文件夹并运行以下命令来解锁它:
php bin/magento admin:user:unlock <username>
Example: php bin/magento admin:user:unlock admin
解决方案2:
转到浏览器上的localhost/phpmyadmin/,然后选择Magento 2数据库。
之后使用此语法使用Mysql命令更改Magento 2密码。
SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET `password` = CONCAT(SHA2(CONCAT(@salt, 'NewP@ssword'), 256), ':', @salt, ':1') WHERE username = 'adminusername';
替换:
NewP@ssword
和您想要的密码(必须满足Magento 2的安全要求)adminusername
和您的管理员帐户用户名
示例:
SET @salt = MD5(UNIX_TIMESTAMP());
UPDATE admin_user SET `password` = CONCAT(SHA2(CONCAT(@salt, 'Admin@123456'), 256), ':', @salt, ':1') WHERE username = 'admin';
运行以上命令后,您的管理员帐户将更新为您在CONCAT(SHA2(CONCAT(@salt, 'NewP@ssword'), 256)
中设置的新密码
现在您可以正常登录您的帐户了。
解决方案3:创建一个新的管理员帐户
如果以上解决方案都不起作用,请创建一个新的管理员帐户。通过SSH 运行以下命令
php bin/magento admin:user:create --admin-user="username" --admin-password="mypassword" --admin-email="youremail@mail.com" --admin-firstname="Admin" --admin-lastname="Admin"
php bin/magento admin:user:create --admin-user="admin" --admin-password="Admin@123456" --admin-email="youremail@mail.com" --admin-firstname="Admin" --admin-lastname="Admin"
干杯!!:)
解决方案4:执行以下步骤
- 删除行首的分号;extension=php.ini中的钠
- 将C:\xamp\php\libsodium.dll复制到C:\xamp\apache\bin\
- 重新启动Apache意味着停止并启动Apache
之后,请在SSH 中运行以下命令
请运行以下查询:
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento clear:cache
就是这样。
谢谢!!
服务器使用的是哪一个?Apache
如果是,则检查php.ini文件中是否启用了Sodium扩展
有时它会在管理员登录时引发问题。
我在Magento 2.4.6中遇到了同样的问题。
步骤
- 创建了一个管理员用户
- 转到管理员登录屏幕,尝试使用新的用户名和密码登录,但它抛出了"帐户登录不正确或您的帐户被暂时禁用">
该解决方案对我有效
我为用户设置了一个很长的截止日期。当我创建用户Magento时,我之所以设置这个,是因为我自动将过期日期设置为同一日期的过期时间,而我并不知道。
如果用户超过了有效期,Magento将强制禁用该用户。
vendor/magento/module-security/Observer/AdminUserAuthenticateBefore.php
第二行在您尝试使用过期用户时修改用户。
if ($user->getId() && $this->userExpirationManager->isUserExpired($user->getId())) {
$this->userExpirationManager->deactivateExpiredUsersById([$user->getId()]);
throw new AuthenticationException(
__(
'The account sign-in was incorrect or your account is disabled temporarily. '
. 'Please wait and try again later.'
)
);
}
有关admin_user_expiration
的更多详细信息,请参阅此表。对我来说,有一个与我创建的用户相关联的记录。
更改为将来的日期解决了我的问题,您也可以从数据库中删除此条目。
我知道这不是根本问题的解决方案,但这有助于缓解生产系统中处理这一问题时的一些痛苦。