gpt4 book ai didi

php - 为什么我的自定义密码重置链接被视为无效?

转载 作者:行者123 更新时间:2023-11-29 05:05:40 25 4
gpt4 key购买 nike

我的目标是向我的用户发送一封电子邮件,其中包含一个链接,该链接将他们直接带到其用户帐户的密码重置页面,特别是用户输入新密码的页面。

我使用 get_password_reset_key 函数生成一个 key ,该 key 被放置到自定义 url 中,但是,当我测试它时,我被重定向到密码重置页面,并出现无效 key 错误。

$resetpasskey = get_password_reset_key($row[1]);
$reseturl = "http://nameofmysite.co.uk/my-account/lost-password/?key=".$resetpasskey."&login=".$row[1];
wp_mail('dean@dean.co.uk','test key',$reseturl);

key 确实输出了一个看起来像有效重置 key 的值,它是标准的 20 个字符长。

$Row[1] 是目标用户的用户名。

$Reseturl 是我电子邮件中的密码重置 url。

最佳答案

我强烈怀疑它无效的原因是因为你传递了不正确的参数。

如果您查看 get_password_reset_key() 的 WordPress 代码,您会发现它希望参数是 WP_User - 不是 用户名(来自下面 WP 代码的代码注释):

/**
* Creates, stores, then returns a password reset key for user.
*
* @since 4.4.0
*
* @global wpdb $wpdb WordPress database abstraction object.
* @global PasswordHash $wp_hasher Portable PHP password hashing framework.
*
* @param WP_User $user User to retrieve password reset key for.
*
* @return string|WP_Error Password reset key on success. WP_Error on error.
*/
function get_password_reset_key( $user ) {

因此,根据您共享的代码,您需要按照以下几行进行修改:

// I'd recommend changing to use `$row['username']`, but that depends on how you get the data
$user = get_user_by( 'login', $row[1] );
$resetpasskey = get_password_reset_key( $user );

关于php - 为什么我的自定义密码重置链接被视为无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com