Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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
Android Wordpress-如何使用RESTAPI更新用户密码_Android_Wordpress_Rest_Api_Woocommerce - Fatal编程技术网

Android Wordpress-如何使用RESTAPI更新用户密码

Android Wordpress-如何使用RESTAPI更新用户密码,android,wordpress,rest,api,woocommerce,Android,Wordpress,Rest,Api,Woocommerce,我正在为我的网络商店使用WoodPress以及woocommerce,并为Android应用程序使用woocommerce REST API 我使用了WP-restapi和JWT验证WP-API插件进行用户身份验证和通过restapi登录 现在当我使用下面的api更改密码时 https://www.my-domain.com/wp-json/wp/v2/users/<id> https://www.my-domain.com/wp-json/wp/v2/users/ 低于误差 {

我正在为我的网络商店使用
WoodPress
以及
woocommerce
,并为
Android应用程序使用
woocommerce REST API

我使用了
WP-restapi
JWT验证WP-API
插件进行用户身份验证和通过restapi登录

现在当我使用下面的api更改密码时

https://www.my-domain.com/wp-json/wp/v2/users/<id>
https://www.my-domain.com/wp-json/wp/v2/users/
低于误差

{“code”:“rest\u无法编辑”,“message”:“抱歉,不允许您访问” 要编辑此用户,请执行以下操作:{“状态”:401}


我不知道为什么会出现这个错误,因为身份验证在登录时只进行了一次。有人能帮我吗?

您需要在ajax调用中传递会话令牌/承载者/nonce。这里是您感兴趣的具体文档:


我也有类似的问题。如果您已经执行了插件文档页面上提到的所有步骤,那么您用于获取令牌的帐户可能存在问题

下面是我创建的一个视频,详细介绍了插件的整个安装/设置过程。尝试按照我概述的步骤进行操作,然后再次测试


通过添加以下行,尝试编辑.htaccess文件

RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
通过添加

define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');
不要忘记在头API调用中传递JWT_令牌,如

*Authorization : 'Bearer ' + YOUR_JWT_TOKEN*
创建自定义api

URL

参数

user_id:10
password:123456  //current password 
new_password:123456
在root中创建文件夹api,并创建文件change\u password.php

更改密码.php

<?php
include '../wp-load.php';

$user_id = $_REQUEST['user_id'];
$user = get_user_by( 'id', $user_id );

$password = $_REQUEST['password'];
$new_password = $_REQUEST['new_password'];

if(empty($user_id)){
    $json = array('code'=>'0','msg'=>'Please enter user id');
    echo json_encode($json);
    exit;    
}
if(empty($password)){
    $json = array('code'=>'0','msg'=>'Please enter old password');
    echo json_encode($json);
    exit;    
}
if(empty($new_password)){
    $json = array('code'=>'0','msg'=>'Please enter new password');
    echo json_encode($json);
    exit;    
}
$hash = $user->data->user_pass;
$code = 500; $status = false;
if (wp_check_password( $password, $hash ) ){
    $msg = 'Password updated successfully';
    $code = 200; $status = true;
    wp_set_password($new_password , $user_id);
}else{
    $msg = 'Current password does not match.';
}




$json = array('code'=>$code,'status'=>$status,'msg'=>$msg);
echo json_encode($json);
exit;

?>


这对我来说100%有效,试试看

见dock。我已经做到了@阿米特维索迪亚