php - WordPress:重置密码总是无效的 key

标签 php wordpress

我有一个大问题,找不到解决方案。我已经安装了 Ultimate Member Plugin 并激活了它。 ^

当我现在重置用户的密码时,我从我的页面收到一封电子邮件,其中包含在 class-password.php 中生成的重置链接。 UM函数调用触发的插件文件um_user( 'password_reset_link' )触发此功能:

/**
 * Get Reset URL
 *
 * @return bool|string
 */
function reset_url() {
    $user_id = um_user( 'ID' );
    delete_option( "um_cache_userdata_{$user_id}" );
    //new reset password key via WP native field
    $user_data = get_userdata( $user_id );
    $key = get_password_reset_key( $user_data );
    $url =  add_query_arg( array( 'act' => 'reset_password', 'hash' => $key, 'user_id' => $user_id ), um_get_core_page( 'password-reset' ) );
    return $url;
}

为了检查哈希,我添加了一个 error_log在函数中 get_password_reset_key位于 users.php来自 WordPress 的文件以通过 key 记录生成的哈希值:
error_log( $hashed );

我还在 Ultimate Member 的电子邮件模板中添加了相同的 hasher,结果如下:
[23-Dec-2018 15:57:41 UTC] 1545580661:$P$BiLzjLuPDHwVtUlnLmEQE19D4UpgJf0
[23-Dec-2018 15:57:41 UTC] 1545580661:$P$BCAl/MTbiuCyqiix7310EOEn.eJlQz1
[23-Dec-2018 15:57:41 UTC] 1545580661:$P$BH0W.btK4hYFNDidKh.DA46KZhp5Ay.
[23-Dec-2018 15:57:41 UTC] Hash from mail: 1545580661:$P$BOzHQ9mIasqhbdYnkK0n.EXhGXBFyD0
[23-Dec-2018 15:57:41 UTC] 1545580661:$P$BGRg8guQBbhuNKdMCIDSweNUDKLG1v/

因此,如您所见,WordPress 生成了 4 个哈希值,而返回的 key 生成了一个哈希值。直接在电子邮件中。

当我现在将电子邮件中生成的哈希值保存到 users 中时字段的表值 user_activation_key然后按重置按钮,我就可以更改密码了。

那么为什么哈希生成不正确,我该如何解决这个问题?我的意思是我可以更改函数并生成新的散列并将其再次写入数据库,但这不能成为解决方案。

最佳答案

解决我的 UM 密码重置问题的原因是“无效 key ”正在禁用我的 /password-reset 上的任何缓存页。不确定这是否能解决您的问题,但以防万一其他人来到这里。

关于php - WordPress:重置密码总是无效的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53905184/

相关文章:

javascript - php 的 ajax 加载无法正常工作

php - 使用 HTML Mime Mail for PHP 发送电子邮件,但需要通过 Exchange 服务器进行身份验证

php - 如何保护 Paypal 自定义按钮

css - 使用 CSS 覆盖焦点上的表单背景颜色

php - 检查用户是否有权在 WooCommerce 中下载任何文件

syntax-error - PHP匿名函数在某些安装中导致语法错误

php - 如何关闭脚本中的xdebug?

menu - 如何在子菜单中显示自定义帖子类型?

Nginx 上的 WordPress 博客 - 找不到 CSS 和 JS 文件

php - add_options_page 未向管理页面添加选项