Kann ich mich sowohl mit WooCommerce Consumer Key als auch mit JWT authentifizieren?

Ich möchte mich gegen beide authentifizieren:

  • der WooCommerce Consumer Key, für Systemabfragen und
  • JSON-Web-Token (JWT) für Benutzeranfragen

Ich habe die JWT-Authentifizierung für die WP-REST-API installiert. Aber nach dem Aktivieren des Plugins scheitern zuvor funktionierende Abfragen (die den WooCommerce-Consumer-Schlüssel für die Authentifizierung verwenden) mit:

{'code': 'jwt_auth_bad_auth_header', 'data': {'status': 403}, 'message': 'Authorization header malformed.'} 

Wie kann ich WordPress / das JWT-Plugin so konfigurieren, dass es erfolgreich ist?

Solutions Collecting From Web of "Kann ich mich sowohl mit WooCommerce Consumer Key als auch mit JWT authentifizieren?"

Ja, das ist möglich, indem Sie Ihre Anfragen entsprechend strukturieren.

Verwenden Sie für Systemanforderungen OAuth 1.0 (Consumer Key wie zuvor), aber verschlüsseln Sie sie so, dass sie die OAuth-Anmeldeinformationen in die URL und nicht in die Header aufnimmt. Wenn Sie die OAuth-Anmeldeinformationen im Authorisation eingeben, wird der JWT-Fehler ausgetriggers.

 GET https://DOMAIN/wp-json/wc/v1/subscriptions * Authorization: `OAuth 1.0` * Consumer key: FILLED IN * Consumer secret: FILLED IN * Other fields: blank * Headers: blank * Body: blank 

Um ein Token anzufordern (für eine benutzerbasierte Abfrage), verwenden Sie keine Autorisierung. Sie fügen die Benutzeranmeldeinformationen in den body ein:

 POST https://DOMAIN/wp-json/jwt-auth/v1/token * Authorization: `No Auth` * Headers: blank * Body: `form-data` * key: username, value: test * key: password, value: test 

Sobald Sie das Token haben, können Sie es dem Header Authentication gemäß den JWT-Anforderungen hinzufügen.

Um diese Abfragen zu testen, ist es am einfachsten, ein spezielles Tool wie httpie oder Postman zu verwenden .

Referenz: https://github.com/Tmeister/wp-api-jwt-auth/issues/87