帐户登录不正确或您的帐户被暂时禁用Magento 2



从今天开始,当我试图进入网站的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中遇到了同样的问题。

步骤

  1. 创建了一个管理员用户
  2. 转到管理员登录屏幕,尝试使用新的用户名和密码登录,但它抛出了"帐户登录不正确或您的帐户被暂时禁用">

该解决方案对我有效

我为用户设置了一个很长的截止日期。当我创建用户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的更多详细信息,请参阅此表。对我来说,有一个与我创建的用户相关联的记录。

更改为将来的日期解决了我的问题,您也可以从数据库中删除此条目。

我知道这不是根本问题的解决方案,但这有助于缓解生产系统中处理这一问题时的一些痛苦。

最新更新