Magento卡在“该更改密码了”的页面。

11

我大约一个月没有使用Magento 2.0.2.0 CE。之后,我登录管理员帐户并打开我的帐户/帐户信息页面时,出现了标题“是时候更改您的密码了。” 当我尝试打开我的产品(或设置页面)时,显示了类似的页面“是时候更改您的密码了。”

我更改了密码并按下“保存帐户”按钮。但是什么也没有改变,我仍然看到“是时候更改您的密码了。”,所有菜单项都会导致此页面“是时候更改您的密码了。”

enter image description here


你试过清除浏览器缓存吗? - Mindaugas M.
是的,但它没有帮助。 - Maxim Kitsenko
7个回答

22

在Magento根目录下运行命令而不是切换到数据库:

禁用强制更改密码和密码生命周期

php bin/magento config:set admin/security/password_is_forced 0
php bin/magento config:set admin/security/password_lifetime 0

重新索引并清理缓存

php bin/magento indexer:reindex
php bin/magento c:c

7

如果路径admin/security/password_is_forced存在,请运行以下SQL查询:

UPDATE `core_config_data` SET `value` = '0' WHERE `path` = 'admin/security/password_is_forced';

否则
INSERT INTO `core_config_data` (`config_id`, `scope`, `scope_id`, `path`, `value`) VALUES (NULL, 'default', '0', 'admin/security/password_is_forced', '0');

5
以下是解决此问题的步骤,以便不再出现。
1. 在表admin_passwords中更新expires值,请在PhpMyAdmin中运行以下sql查询: UPDATE admin_passwords SET expires = 1999999998 WHERE user_id = <>;
2. 在“商店>配置>高级>管理>安全”部分将“密码更改”更改为“推荐” 有关详细信息,请参见https://bestcodestore.com/magento-2-issue-time-change-password/

4

1) 在您的商店数据库中运行此SQL脚本:UPDATE admin_passwords SET expires = <<一些未来时间戳>> WHERE user_id = <<admin_user_id>>;

  • 我使用的<<一些未来时间戳>>是1999999998
  • <<admin_user_id>> - 您可以在表admin_user中找到您的用户ID

您还可以通过某些UI客户端完成相同的工作:只需编辑admin_passwords表中的expires列为1999999998(我建议更改所有行以影响所有用户): db client

2) 清除浏览器缓存和cookie。

3) 登录Magento。享受它!


1
在CLI中从Magento根目录运行以下命令。
php bin/magento config:set admin/security/password_is_forced 0
php bin/magento config:set admin/security/password_lifetime 0
php bin/magento cache:flush

1

如果您在升级到 Magento 2.4.3 或更高版本后遇到此问题,以下是解决方法:
暂时禁用强制密码验证。

php bin/magento config:set admin/security/password_is_forced 0
php bin/magento cache:flush

在MAP中,我们需要去到: Stores > Config > Advanced | System > Security 将管理员最大会话大小设置为0 尽管这会引发一个警告,但保存正常。 然后清除缓存。 接下来我们就可以重新启用强制密码更改。
php bin/magento config:set admin/security/password_is_forced 1

或者 商店 > 配置 > 高级 | 管理员 > 安全 将密码更改设置为强制 然后清除缓存。


-1

我遵循了burzhuy的建议 - 但是我没有运行脚本,而是通过phpMyAdmin打开了数据库表“admin_passwords”。这个表在Magento 2的早期版本中是不可用的。 如果您只有非常少量的用户/管理员,只需将UNIX时间戳复制/粘贴到未来的某个时间。互联网上有许多时间戳转换器。

在此数据库更新后仍然需要清除浏览器缓存和cookie。完美地工作。

在我看来,这应该只针对开发目的进行推荐,并且与所有密码安全规则相反。


1
通常情况下,您完成了我描述的相同工作,但是通过用户界面实现。 - Maxim Kitsenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接