2017-12-09 1 views
0

Ich brauche Benutzer auf Wordpress erstellen. Ich benutze WP_REST_API - dies ist Standard-API für WP. Sie können es sich ansehen "YOU_SITE/wp-json /" Ich habe ionic3 Projekt und habe Funktion.Wie kann ich Benutzer mit REST_API WordPress erstellen?

onSubmit(values){ 
    this.http.post(Config.WORDPRESS_URL + 'wp-json/jwt-auth/v1/token',{ 
     username: 'admin', 
     password: 'pass' 
    }) 
    .subscribe(
     res => { 
     let token = res.json().token; 
      let header : Headers = new Headers(); 
      header.append('Authorization','Basic ' + token); 
     this.http.post(Config.WORDPRESS_REST_API_URL + 'users?token=' + res.json().token,{ 
      username: values.username, 
      name: values.displayName, 
      email: values.email, 
      password: values.password, 
     },header) 
     .subscribe(
      result => { 
      console.log(result.json()); 
      }, 
      error => { 
      console.log(error.json()); 
      } 
     ) 
     }, 
     err => { 
     console.log(err); 
     } 
    ) 
    } 

Aber ich bekomme immer Fehler:

code: "rest_cannot_create_user", 
message: "Sorry, but you can't create new user" 
status: 401 

Admin: pass - das Admin vor Ort ist und eine Rolle Admin. Auch habe ich mich in .htaccess

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

Bitte helfen Sie einen Fehler

+0

Haben Sie das Basic Authentication Plugin der Dokumentation installiert? https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/ – mmm

+0

Ja, ich habe die JWT-Authentifizierung für die WP-REST-API –

+0

installiert, um das Token zu verwenden. Versuchen Sie es mit "Bearer" anstelle von "basic" "' header.append ('Authorization', 'Bearer' + Token); ' – mmm

Antwort

1

Ich fand mein Problem und Lösung zu finden. Ich param TOKEN von URL löschen und Optionen Header erstellen

let header = new Headers({"Authorization": "Bearer "+token}); 
let options = new RequestOptions({headers: header}); 

ich als nächstes haben Anfrage

this.http.post(Config.REGISTER, { 
      username: username, 
      name: displayName, 
      email: email, 
      password: password, 
      nonce: nonce 
     }, options) 

es Arbeit für mich ist.

Verwandte Themen