Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改密码时需要要求用户添加旧密码_Php_Wordpress - Fatal编程技术网

Php 更改密码时需要要求用户添加旧密码

Php 更改密码时需要要求用户添加旧密码,php,wordpress,Php,Wordpress,我目前正在wordpress中为更改密码制作一个RESP API,因此我担心在更改密码期间需要旧密码 目前我正在使用3个参数uid、password和conf\u passeor 所以我是否需要询问旧密码 以下是我更改密码的代码 if ( $_REQUEST['password'] != $_REQUEST['confirm_password'] ){ $result = array('status'=>false,'message'=>'the passwords

我目前正在wordpress中为更改密码制作一个RESP API,因此我担心在更改密码期间需要旧密码

目前我正在使用3个参数
uid、password
conf\u passeor

所以我是否需要询问旧密码

以下是我更改密码的代码

if ( $_REQUEST['password'] != $_REQUEST['confirm_password'] ){
        $result = array('status'=>false,'message'=>'the passwords you entered do not match.');
        header('Content-Type: application/json');
        echo  json_encode($result);
        die();
    }

    if($_REQUEST['uid'] &&  $_REQUEST['password']){
        $password = $_REQUEST['password'] ;
        $data =wp_set_password( $password, $_REQUEST['uid'] );  
        $result = array('status'=>true,'message'=>'Password changed successfully.');        
    }else{
        $result = array('status'=>false,'message'=>'Something went wrong.');        
    }

    header('Content-Type: application/json');
        echo  json_encode($result);
        die();

如果是,那么我应该怎么做。

除非您有其他令牌证明请求来自该用户(因此他们有权进行更改),否则我会说是,您绝对需要请求旧密码。否则,其他一些随机人可能会在不知道任何凭据的情况下请求更改该用户的密码,然后访问该帐户。通常的做法是向该用户发送一封电子邮件,其中包含验证其身份的令牌链接。在这里,请求旧密码通常是一个不好的授权选项,因为想要更改密码的最常见原因是您忘记了旧密码。实际上,iainn是正确的,最好给用户一条带有某种GUID的消息(电子邮件是好的),该GUID是唯一的(不仅对用户而言,而且对特定的电子邮件实例来说是独一无二的,甚至可能会随着时间的推移而过期),而且很难猜测,他们必须提供这一点(例如,您可以将其作为查询字符串参数包含在可点击的URL中,然后您可以读取该参数)。不要使用普通用户ID或电子邮件作为令牌,因为这很容易找到。重复: