DD7*_*D77 7 api rest wordpress android woocommerce
我wordpress也woocommerce用于我的网上商店,也woocommerce REST API用于Android app。
我已经使用WP REST API和JWT Authentication for WP-API插件来进行用户身份验证和通过rest api登录。
现在,当我使用下面的api更改密码时
https://www.my-domain.com/wp-json/wp/v2/users/<id>
Run Code Online (Sandbox Code Playgroud)
低于错误
{“ code”:“ rest_cannot_edit”,“ message”:“对不起,您不能编辑此用户。”,“ data”:{“ status”:401}}
我不知道为什么在登录时进行一次身份验证会收到此错误。谁能帮帮我吗?
创建您的自定义 api
网址
https://yourdomain/api/change_password.php
范围
user_id:10
password:123456 //current password
new_password:123456
Run Code Online (Sandbox Code Playgroud)
在 root 中创建文件夹api并创建文件 change_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;
?>
Run Code Online (Sandbox Code Playgroud)
它对我来说是 100% 的工作,试试吧
您需要通过 ajax 调用传递会话令牌/承载/随机数。这里有您感兴趣的特定文档:
https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/#cookie-authentication
| 归档时间: |
|
| 查看次数: |
3235 次 |
| 最近记录: |