首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Wordpress -如何使用REST更新用户密码

Wordpress -如何使用REST更新用户密码
EN

Stack Overflow用户
提问于 2017-03-24 08:42:11
回答 4查看 9.3K关注 0票数 11

我正在使用wordpress以及woocommerce作为我的网络商店,也使用woocommerce REST APIAndroid app

我使用WP REST APIJWT Authentication for WP-API插件进行用户身份验证,并通过rest登录。

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

代码语言:javascript
运行
复制
https://www.my-domain.com/wp-json/wp/v2/users/<id>

降至误差以下

{“代码”:"rest_cannot_edit",“消息”:“对不起,您不允许编辑这个用户。”,“数据”:{“状态”:401 }

我不知道为什么要得到这个错误,因为身份验证是在登录时完成的。有人能帮帮我吗?

EN

回答 4

Stack Overflow用户

发布于 2020-04-29 17:47:40

创建自定义api

URL

password.php

参数

代码语言:javascript
运行
复制
user_id:10
password:123456  //current password 
new_password:123456

在根目录中创建文件夹api并创建文件change_password.php

change_password.php

代码语言:javascript
运行
复制
<?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%的试一试

票数 7
EN

Stack Overflow用户

发布于 2017-10-12 13:54:28

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

下面是我创建的一个视频,它详细介绍了插件的整个安装/安装过程。试着按照我概述的步骤进行测试。

https://youtu.be/Mp7T7x1oxDk

票数 2
EN

Stack Overflow用户

发布于 2018-12-21 06:40:49

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

代码语言:javascript
运行
复制
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

和wp-config.php通过添加

代码语言:javascript
运行
复制
define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');

不要忘记在头API调用中传递您的JWT_token,如

代码语言:javascript
运行
复制
*Authorization : 'Bearer ' + YOUR_JWT_TOKEN*
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42994905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档