WordPress – So aktualisieren Sie das Benutzerkennwort mithilfe der REST-API

Lesezeit: 2 Minuten

ich benutze wordpress auch woocommerce für meinen Webshop und auch mit woocommerce REST API zum Android app.

Ich habe benutzt WP REST API und JWT Authentication for WP-API Plugins für die Benutzerauthentifizierung und Anmeldung über die Rest-API.

Wenn ich jetzt die untenstehende API verwende, um das Passwort zu ändern

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

unten Fehler bekommen

{ “code”: “rest_cannot_edit”, “message”: “Entschuldigung, Sie sind nicht berechtigt, diesen Benutzer zu bearbeiten.”, “data”: { “status”: 401 } }

Ich weiß nicht, warum ich diesen Fehler erhalte, da die Authentifizierung einmal zum Zeitpunkt der Anmeldung erfolgt. Kann mir bitte jemand helfen?

  • Siehe Dock. v2.wp-api.org/reference/users

    – Amit Visodiya

    24. März 2017 um 8:48 Uhr

  • Ich habe es schon getan. @AmitVisodiya

    – DD77

    24. März 2017 um 8:58 Uhr

Erstellen Sie Ihre benutzerdefinierte API

URL

https://ihredomain/api/change_password.php

Parameter

user_id:10
password:123456  //current password 
new_password:123456

Ordner erstellen API in root und erstellen Sie die Datei change_password.php

change_password.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;

?>

bei mir funktioniert es zu 100% probier es aus

Ich hatte ein ähnliches Problem. Wenn Sie alle Schritte ausgeführt haben, die auf der Dokumentationsseite des Plugins erwähnt werden, liegt möglicherweise ein Problem mit dem Konto vor, das Sie zum Abrufen des Tokens verwenden.

Unten ist ein Video, das ich erstellt habe und das den gesamten Installations-/Einrichtungsprozess für das Plugin beschreibt. Versuchen Sie, die von mir beschriebenen Schritte zu befolgen, und testen Sie erneut.

https://youtu.be/Mp7T7x1oxDk

Versuchen Sie, Ihre .htaccess-Datei zu bearbeiten, indem Sie die folgenden Zeilen hinzufügen

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

und deine wp-config.php durch Hinzufügen

define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');

Vergessen Sie nicht, Ihr JWT_token im Header-API-Aufruf zu übergeben, z

*Authorization : 'Bearer ' + YOUR_JWT_TOKEN*

Sie müssen mit Ihrem Ajax-Aufruf ein Sitzungstoken/Bearer/Nonce übergeben. Hier haben Sie die spezifischen Dokumente von Interesse:

https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/#cookie-authentication

1393440cookie-checkWordPress – So aktualisieren Sie das Benutzerkennwort mithilfe der REST-API

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy