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?
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
13934400cookie-checkWordPress – So aktualisieren Sie das Benutzerkennwort mithilfe der REST-APIyes
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