Suchergebnisse :

×

WordPress REST API OAuth 2.0-Authentifizierungsmethode

OAuth 2.0 ist eine der am häufigsten verwendeten Methoden zur Sicherung des Zugriffs auf WordPress REST API-Endpunkte. Im Gegensatz zu herkömmlichen Methoden, OAuth 2.0 ermöglicht die Autorisierung, ohne die E-Mail-Adresse oder das Passwort eines Benutzers externen Anwendungen preiszugeben. Dieser Authentifizierungsablauf verwendet die OAuth 2.0-Protokoll zur Generierung einer sicheren Zugangstoken or ID-Token (JWT-Token), das dann zur Authentifizierung aller API-Anfragen verwendet wird. Jedes Mal, wenn eine Anfrage an eine WordPress REST API-Endpunktüberprüft die API die Inhaber-Token um festzustellen, ob auf die angeforderten Ressourcen zugegriffen werden kann. Die über OAuth 2.0 sind hoch verschlüsselt und sicher, wodurch sichergestellt wird, dass sensible Daten geschützt bleiben. Während ähnlich wie JWT-Authentifizierung, OAuth 2.0 bietet erhöhte Sicherheit und zusätzliche Vorteile und ist damit die bevorzugte Methode zum Schutz WordPress REST API-Endpunkte.



WordPress REST API-Authentifizierung

Das WordPress REST API Authentication-Plugin schützt Ihre WordPress REST APIs vor unbefugtem Zugriff. Unser Plugin bietet verschiedene Authentifizierungsmethoden wie Basisauthentifizierung, API-Schlüsselauthentifizierung, OAuth 2.0-Authentifizierung und JWT-Authentifizierung.

Mehr Erfahren   

  • Melden Sie sich als Administrator bei Ihrer WordPress-Instanz an.
  • Gehen Sie zu WordPress Dashboard → Plugins und klicken Sie auf Inserat erstellen.
  • Suchen Sie nach einem WordPress REST API-Authentifizierung Plugin und klicken Sie auf Jetzt installieren.
  • Klicken Sie nach der Installation auf Mehr erfahren.


1. Passwortgewährung:


Wie kann man WordPress-Benutzer auf externen Plattformen sicher über die REST-API registrieren oder authentifizieren?

  • Wenn Sie ein Login-Formular in Ihrer Anwendung haben und Benutzer mit ihren WordPress-Anmeldeinformationen, Die OAuth 2.0-Authentifizierung in der REST-API-Methode kann Ihnen dabei helfen, dies zu erreichen.
  • Das Plugin bietet eine WordPress-Anmelde-API, sodass Sie die WordPress-Anmeldeinformationen eines Benutzers auf diese API. Basierend auf der Validierung erhalten Sie eine Authentifizierung und eine Antwort, die den Zugriff des Benutzers bestätigt.
  • Darüber hinaus ist die OAuth 2.0-Authentifizierung in der REST-API-Methode kann auch verwendet werden, um neue Benutzer in WordPress zu registrieren mit Administratoranmeldeinformationen. Durch das Plugin OAuth 2.0-Token-Endpunkt, Du kannst senden WordPress-Administratoranmeldeinformationen um ein Token mit Administratorrechten zu generieren.
  • Dieses Token kann dann verwendet werden, um privilegierte Operationen durchzuführen, wie zum Beispiel Benutzer Registration. Nach der Generierung kann das Token mit dem WordPress /users REST-API-Endpunkt um Benutzer sicher in WordPress zu registrieren, ohne vertrauliche Anmeldeinformationen preiszugeben.

2. Anmeldedaten des Kunden:


Wie kann man WordPress REST API-Endpunkte sicher authentifizieren oder schützen und Benutzer registrieren, ohne Administrator-Benutzeranmeldeinformationen zu verwenden?

  • Wenn Sie auf die zugreifen möchten WordPress REST-API ohne zu teilen WordPress-Benutzeranmeldeinformationen, oder wenn Sie Benutzer in WordPress sicher registrieren möchten, ohne Anmeldeinformationen des Administratorbenutzers, hat das Client-Anmeldeinformationen-Methode ist die perfekte Lösung.
  • Anstatt vertrauliche Anmeldedaten preiszugeben, können Sie die Client-Anmeldeinformationen vom Plug-In bereitgestellt, sodass sichergestellt ist, dass keine Gefahr einer Gefährdung der Anmeldeinformationen besteht.
  • Das Plugin fungiert als OAuth 2.0-Identitätsanbieter (Server) zur Ausgabe sicherer Token und als REST-API-Authentifikator um sie zu validieren.
  • Nach Erhalt kann das Token authentifizieren WordPress REST API-Endpunkte, wodurch ein sicherer und zuverlässiger Zugriff gewährleistet wird.
  • Es ist nicht erforderlich, diese Flussimplementierung hinzuzufügen, da wir kein Flussdiagramm eingefügt haben und die Implementierung bereits anhand von zwei Anwendungsfällen erläutert wurde.
    • 1. Die REST-API-Anfrage wird mit den entsprechenden Parametern gestellt, um das Token für unser Plugin zu erhalten. Unser Plugin fungiert als OAuth 2.0-Identitätsanbieter und stellt das Zugriffstoken bereit.

      2. Die eigentliche REST-API-Anfrage für den Zugriff auf die Ressource erfolgt mit dem Zugriffstoken, das im letzten Schritt im Autorisierungsheader mit dem Tokentyp „Bearer“ übergeben wurde. Das Plugin fungiert nun als Authentifikator, um die API anhand der Token-Gültigkeit zu authentifizieren. Wenn das Token erfolgreich validiert wird, darf der API-Anforderer auf die Ressource zugreifen. Bei fehlgeschlagener Validierung wird andernfalls eine Fehlerantwort zurückgegeben.


Verwandter Anwendungsfall:

  • Wie melde ich Benutzer mit der WordPress REST API an oder registriere sie?
  • Wie authentifiziert man WordPress-Benutzer mithilfe der API?


  • Gehen Sie zum Konfigurieren API-Authentifizierung Registerkarte im Plugin und wählen Sie OAuth 2.0-Authentifizierung als Methode.
  • Wähle aus OAuth 2.0-Berechtigungstyp as Passwortgewährung.
  • Wählen Sie den Token-Typ entweder als Zugangstoken or JWT-Token. Der Zugangstoken ist eine zufällige Zeichenfolge, während die JWT-Token enthält verschlüsselte Benutzerdetails und wird empfohlen, wenn Sie später WordPress-Profildetails abrufen müssen.
  • WordPress REST API OAuth 2.0-Authentifizierungsmethode
  • Klicken Sie auf Konfiguration speichern ermöglichen OAuth 2.0-Authentifizierung und sichern Sie sich Ihr WordPress REST API-Endpunkte.
  • Nach dem Speichern erhalten Sie die Kunden-ID, Kundengeheimnisund Token-Endpunkt zum Erhalt des Sicherheitstokens.
  • Führen Sie nach Abschluss der Einrichtung zwei API-Aufrufe durch: zunächst, um das Access/JWT-Token abzurufen, und dann, um dieses Token zur Authentifizierung von WordPress REST-API-Anfragen zu verwenden.

    Ich: Holen Sie sich den Token

    • Um das Zugriffstoken/JWT-Token zu erhalten, müssen Sie einen API-Aufruf an den OAuth 2.0-Token-Endpunkt durchführen, der von unserem Plugin bereitgestellt wird (siehe unten).
    • 
        Request: POST https://<domain-name>/wp-json/api/v1/token
        Body:
        grant_type =<password>
        username =<wordpress username>
        password = <wordpress password>
        client_id =<client id>
        
        Sample curl Request Format-
        curl -d "grant_type=password&username=<wordpress_username>&password=<wordpress_password>&client_id=<client_id>"
        -X POST http://<wp_base_url>/wp-json/api/v1/token
        -H 'app-name:TheAppName'
        
    • Verwenden des Aktualisierungstokens
    • 
        Request: POST  https://<domain-name>/wp-json/api/v1/token
        Body:
        grant_type = <refresh_token>
        refresh_token =  <Refresh Token>
        
        Sample curl Request Format-
        curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
        -X POST http://<wp_base_url>/wp-json/api/v1/token
        -H 'app-name:TheAppName'
        

    II: Senden Sie eine aktuelle WordPress-REST-API-Anfrage

    • Sobald Sie das access_token / id_token (JWT-Token) mithilfe des OAuth 2.0-Passwortgewährungsflusses erhalten haben, können Sie damit den Zugriff auf die WordPress-REST-API-Endpunkte anfordern, wie unten gezeigt.
    • 
        Request: GET https://<domain-name>/wp-json/wp/v2/posts
        Header: Authorization :Bearer <access_token /id_token>
        
    • Anmerkungen: Das obige Token ist standardmäßig 1 Stunde lang gültig. Derselbe Token kann vor seiner Ablaufzeit mehrmals für mehrere REST-API-Anfragen verwendet werden. Sobald das Token abgelaufen ist, muss ein neues Token erstellt werden, um den WordPress-REST-API-Endpunktzugriff anzufordern.
  • Entdecken Sie unsere Fehlerantwort für OAuth 2.0 mit Password Grant.


  • Gehen Sie im Plugin auf „Konfigurieren“. API-Authentifizierung Registerkarte, und wählen Sie OAuth 2.0-Authentifizierung als Methode.
  • Wähle die OAuth 2.0-Berechtigungstyp as Gewährung von Client-Anmeldeinformationen.
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode mit JWT
  • Klicken Sie auf Konfiguration speichern um die Methode zu aktivieren.
  • Nach dem Speichern erhalten Sie die Kunden-ID, Kundengeheimnisund Token-Endpunkt.
  • Führen Sie als Nächstes zwei API-Aufrufe durch: einen, um das Token abzurufen, und einen weiteren, um dieses Token zur Authentifizierung von WordPress REST-API-Anfragen zu verwenden.
  • Ich: Holen Sie sich den Token

    • Nachdem Sie die obige Konfiguration gespeichert haben, erhalten Sie die Client-ID, das Client-Geheimnis und den Token-Endpunkt.
    • Um das Token zu erhalten, müssen Sie wie unten gezeigt eine Token-Anfrage senden
    • 
        Request: POST https://<domain-name>/wp-json/api/v1/token
        Body:
        grant_type = <client_credentials>
        client_id = <client id>
        client_secret = <client secret>
        
        Sample curl Request Format-
        curl -d "grant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>"
        -X POST http://<wp_base_url>/wp-json/api/v1/token
        -H 'app-name:TheAppName'
        
    • Verwenden des Aktualisierungstokens
    • 
        Request: POST https://<domain-name>/wp-json/api/v1/token
        Body:
        grant_type = <refresh_token>
        refresh_token = <Refresh Token>
        
        Sample curl Request Format-
        curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
        -X POST http://<wp_base_url>/wp-json/api/v1/token
        -H 'app-name:TheAppName'
        

    II: API-Anfrage senden

    • Sobald Sie die Zugangsdaten des access_token/id_token by OAuth 2.0-Clients erhalten haben, können Sie damit den Zugriff auf den WordPress-REST-API-Endpunkt anfordern, wie unten gezeigt.
    • 
        Request: GET https://<domain-name>/wp-json/wp/v2/posts
        Header: Authorization : Bearer <access_token /id_token>
    • Anmerkungen: Das obige Token ist standardmäßig 1 Stunde lang gültig. Derselbe Token kann vor seiner Ablaufzeit mehrmals für mehrere REST-API-Anfragen verwendet werden. Sobald das Token abgelaufen ist, muss ein neues Token erstellt werden, um den WordPress-REST-API-Endpunktzugriff anzufordern.
  • Entdecken Sie unsere Fehlerantwort für OAuth 2.0 mit Client Credentials Grant.
  • Entdecken Sie unsere Entwicklerdokumentation für weitere Informationen an.


Die OAuth 2.0-Methode bietet Ihnen zusätzliche Sicherheitseinrichtungen, wodurch Sie mehr Kontrolle über die Token haben und dadurch die allgemeine Sicherheit Ihres Wordpress-Website.


1. Aktualisierungstoken –



WordPress REST API OAuth 2.0 Authentifizierungs-Aktualisierungstoken

Aktivieren Sie die Token aktualisieren Möglichkeit, eine Token aktualisieren zusammen mit dem Zugangstoken or JWT-Token.

Benutzer können weiterhin auf dieselben Ressourcen zugreifen, ohne sich erneut anmelden zu müssen.

Aktualisierungstoken erlauben die Ausgabe von kurzlebigen Zugriffstoken für mehr Sicherheit.

wenn ein Zugangstoken abläuft, Token aktualisieren generiert sicher ein neues.


2. Token widerrufen –



WordPress REST API OAuth 2.0 Authentifizierungs-Revoke-Token

Aktivieren Sie die Token widerrufen Option zum Ungültigmachen einer bestehenden Zugangstoken or JWT-Token.

Nach dem Widerruf kann das Token nicht mehr zur Authentifizierung verwendet werden WordPress-REST-APIs.

Die REST API zuerst validiert App-Anmeldeinformationen und prüft, ob das Token zur anfordernden App gehört.

Bei erfolgreicher Validierung wird das Token ungültig; fehlgeschlagene Validierungen geben einen Fehler zurück.


 
  var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
  client.Timeout = -1;
  var request = new RestRequest(Method.POST);
  request.AlwaysMultipartFormDatatrue;    
  request.AddHeader("app-name", "TheAppName");
  request.AddParameter("grant_type", "client_credentials");
  request.AddParameter("client_id", "<client_id>");     
  request.AddParameter("client_secret", "<client_secret>");
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");    
  RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)    
  .addFormDataPart("grant_type", "client_credentials");
  .addFormDataPart("client_id", "<client_id>");     
  .addFormDataPart("client_secret", "<client_secret>");
   .build();
  Request request  = new Request.Builder()  
  .url("http://<wp_base_url>/wp-json/api/v1/token ")
  .method("POST", null)
  .addHeader("app-name", "TheAppName")
   .build();
  Response responseclient.newCall(request).execute();
          
 
  var form = new FormData();
  form.append("grant_type", "client_credentials");
  form.append("client_id", "<client_id>");     
  form.append("client_secret", "<client_secret>");
  
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/api/v1/token ",
      "method": "POST",
      "timeout": 0,
      "headers": {"app-name": "TheAppName"}
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
    };
    
    $.ajax(settings).done(function (response)  {
      console.log(response);
    });
    
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      (  
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_HTTPHEADER => array( 'app-name: TheAppName' )
          CURLOPT_POSTFIELDS => array('grant_type' => 'client_credentials','client_id' => '<client_id>','client_secret' => '<client_secret>'),
  
          ));          
        
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
          
 
  import http.client
  import mimetypes
  from codecs import encode
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  dataList= []
  boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=grant_type;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("client_credentials"))
  dataList.append(encode('--' + boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
  
  dataList.append('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))    
  
  dataList.append(encode("<client_id>"))    
  dataList.append(encode('--'+ boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))
  
  
  dataList.append(encode("<client_secret<"))    
  dataList.append(encode('--'+boundary+'--'))
  dataList.append(encode(''))
  body  = b'\r\n'.join(dataList)    
  payload= body
  headers = {
    'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
    'app-name': 'TheAppName'
  }
  conn.request("POST", "/wp-json/api/v1/token ", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  
 
  var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
  client.Timeout = -1;
  var request = new RestRequest(Method.POST);
  request.AlwaysMultipartFormData true;
  request.AddHeader("app-name", "TheAppName");
  request.AddParameter("grant_type", "password");
  request.AddParameter("username", "<wordpress_username>");     
  request.AddParameter("password", "<wordpress_password>");    
  request.AddParameter("client_id", "<client_id>");
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");    
  RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)    
  .addFormDataPart("grant_type", "password");
  .addFormDataPart("username", "<wordpress_username>");     
  .addFormDataPart("password", "<wordpress_password>");    
  .addFormDataPart("client_id", "<client_id>");
   .build();
  Request request  = new Request.Builder()  
  .url("http://<wp_base_url>/wp-json/api/v1/token ")
  .method("POST", null)
  .addHeader("app-name", "TheAppName")
   .build();
  Response responseclient.newCall(request).execute();
        
 
  var form = new FormData();
  form.append("grant_type", "password");
  form.append("username", "<wordpress_username>");     
  form.append("password", "<wordpress_password>");    
  form.append("client_id", "<client_id>");
  
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/api/v1/token ",
      "method": "POST",
      "timeout": 0,
      "headers": {"app-name": "TheAppName"}
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
      };
      
      $.ajax(settings).done(function (response)  {
      console.log(response);
      });
      
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      ( CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_HTTPHEADER => array( 'app-name: TheAppName' )
          CURLOPT_POSTFIELDS => array('username' => '<wordpress_username>','password' => '<wordpress_password>'),
          ));
          
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
        
 
  import http.client
  import mimetypes
  from codecs import encode
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  dataList= []
  boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=grant_type;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("password"))
  dataList.append(encode('--' + boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=username;')    
  
  dataList.append('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))    
  
  dataList.append(encode("<wordpress_username>"))    
  dataList.append(encode('--'+ boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=password;'))
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))
  
  dataList.append(encode("<wordpress_password<"))    
  dataList.append(encode('--'+boundary))
  dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))
  
  dataList.append(encode("<client_id>"))    
  dataList.append(encode('--'+boundary+'--'))    
  dataList.append(encode(''))    
  
  body  = b'\r\n'.join(dataList)    
  payload= body
  headers = {
    'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
    'app-name': 'TheAppName'
  conn.request("POST", "/wp-json/api/v1/token ", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  

 
  var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
  client.Timeout = -1;
  var request = new RestRequest(Method.POST);
  request.AlwaysMultipartFormDatatrue;    
  request.AddHeader("app-name", "TheAppName");
  request.AddParameter("grant_type", "refresh_token");
  request.AddParameter("client_id", "<client_id>");     
  request.AddParameter("client_secret", "<client_secret>");
  request.AddParameter("refresh_token", "<refresh_token>");
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");    
  RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)    
  .addFormDataPart("grant_type", "refresh_token");
  .addFormDataPart("client_id", "<client_id>");     
  .addFormDataPart("client_secret", "<client_secret>");
  .addFormDataPart("refresh_token", "<refresh_token>");
   .build();
  Request request  = new Request.Builder()  
  .url("http://<wp_base_url>/wp-json/api/v1/token ")
  .method("POST", null)
  .addHeader("app-name", "TheAppName")
   .build();
  Response responseclient.newCall(request).execute();
          
 
  var form = new FormData();
  form.append("grant_type", "refresh_token");
  form.append("client_id", "<client_id>");     
  form.append("client_secret", "<client_secret>");
  form.append("refresh_token", "<refresh_token>");
  
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/api/v1/token ",
      "method": "POST",
      "timeout": 0,
      "headers": {"app-name": "TheAppName"}
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
    };
    
    $.ajax(settings).done(function (response)  {
      console.log(response);
    });
    
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      (  
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_HTTPHEADER => array( 'app-name: TheAppName' )
          CURLOPT_POSTFIELDS => array('grant_type' => 'refresh_token','client_id' => '<client_id>','client_secret' => '<client_secret>','refresh_token' => '<refresh_token>'),
  
          ));          
        
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
          
 
  import http.client
  import mimetypes
  from codecs import encode
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  dataList= []
  boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=grant_type;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("refresh_token"))
  dataList.append(encode('--' + boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
  
  dataList.append('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))    
  
  dataList.append(encode("<client_id>"))    
  dataList.append(encode('--'+ boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))
  
  dataList.append(encode("<client_id>"))    
  dataList.append(encode('--'+ boundary))    
  dataList.append(encode('Content-Disposition: form-data; name=refresh_token;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))
  dataList.append(encode(''))
  
  dataList.append(encode("<refresh_token<")) 
  dataList.append(encode('--'+boundary+'--'))
  dataList.append(encode(''))
  
  body  = b'\r\n'.join(dataList)    
  payload= body
  headers = {
    'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
    'app-name': 'TheAppName'     
  
  conn.request("POST", "/wp-json/api/v1/token ", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  
 
  var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts");
  client.Timeout = -1;
  var request = new RestRequest(Method.GET);
  request.AddHeader = ("Authorization", "Bearer < access_token / id_token >");
  request.AddHeader = ("app-name", "TheAppName");
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");    
  RequestBody body =  RequestBody.create(mediaType, ""); 
  Request request  = new Request.Builder()
  .url("http://<wp_base_url>//wp-json/wp/v2/posts")
  .method("GET", body)
  .addHeader = ("Authorization", "Bearer < access_token / id_token >"); 
  .addHeader = ("app-name", "TheAppName"); 
   .build();
  Response responseclient.newCall(request).execute();
        
 
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
      "method": "GET",
      "timeout": 0,
      "headers": {
        "Authorization": "Bearer < access_token / id_token >",
        "app-name": "TheAppName"
      },
    };      
      
      $.ajax(settings).done(function (response)  {
      console.log(response);
      });
      
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      ( 
          curl_setopt_array($curl, array(
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/wp/v2/posts%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'GET',
          CURLOPT_HTTPHEADER => array(
              'Authorization: Bearer < access_token / id_token >',
              'app-name: TheAppName'
  );
  ));
  
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
        
 
   import http.client
  
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  payload = "
  headers =  {
      'Authorization': 'Bearer < access_token / id_token >',
      'app-name': 'TheAppName',
    }
  
  conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)    
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  

  • Beispielanforderung zum Erhalt eines Tokens:
  • Sie können das Muster für die Postbotenanfrage unter herunterladen werden auf dieser Seite erläutert.
  • Nun extrahieren Sie die zip-Datei und importieren Sie die extrahierten JSON-Datei in die Postman-Anwendung.
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman-Implementierung
  • Beispiel
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman ersetzt URL tatsächliche Ressource
  • Beispielanforderungsformat zum Anfordern von Ressourcen mithilfe des im letzten Schritt erhaltenen Tokens.
  • Sie können das Muster für die Postbotenanfrage unter herunterladen werden auf dieser Seite erläutert.
  • Nun extrahieren Sie die zip-Datei und importieren Sie die extrahierten JSON-Datei in die Postman-Anwendung.
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman-Implementierung
  • Beispiel
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman ersetzt URL tatsächliche Ressource

  • Beispielanforderung zum Erhalt eines Tokens:
  • Sie können das Muster für die Postbotenanfrage unter herunterladen werden auf dieser Seite erläutert.
  • Nun extrahieren Sie die zip-Datei und importieren Sie die extrahierten JSON-Datei in die Postman-Anwendung.
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman-Implementierung
  • Beispiel
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman ersetzt URL tatsächliche Ressource

  • Sie können das Muster für die Postbotenanfrage unter herunterladen werden auf dieser Seite erläutert.
  • Nun extrahieren Sie die zip-Datei und importieren Sie die extrahierten JSON-Datei in die Postman-Anwendung.
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman-Implementierung
  • Beispiel
  • WordPress REST API OAuth 2.0 Authentifizierungsmethode Postman-URL tatsächliche Ressource


1. Einschränkung der rollenbasierten REST-API:


Diese Funktion beschränkt WordPress REST API-Zugriff basiert auf Benutzerregeln. Sie können bestimmte Rollen auf eine Whitelist setzen, die Zugriff auf bestimmte REST-API-Ressourcen. Wenn ein REST-API-Anfrage erfolgt, die Rolle des Benutzers wird überprüft und der Zugriff wird nur gewährt, wenn die Rolle auf der Zulassungsliste steht.


Wie konfiguriere ich eine rollenbasierte REST-API-Einschränkung in WordPress?

  • Zum Plugin Erweiterte Einstellungen Tab.
  • Im Rollenbasierte Einschränkung Abschnitt ist allen Rollen standardmäßig der Zugriff auf APIs gestattet.
  • Aktivieren Sie das Kontrollkästchen neben den Rollen, deren Zugriff auf die APIs Sie einschränken möchten.
  • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
  • Im obigen Screenshot ist das Kontrollkästchen für die Abonnentenrolle aktiviert. Wenn ein Benutzer in seiner Rolle als Abonnent eine API-Anfrage stellt, darf er nicht auf die angeforderte Ressource zugreifen.

Hinweis: Die rollenbasierte Einschränkungsfunktion ist für die Basisauthentifizierung (Benutzername: Kennwort), die JWT-Methode und OAuth 2.0 (Kennwortzuweisung) gültig.


2. Benutzerdefinierter Header:


Die Benutzerdefinierte Kopfzeile Mit dieser Funktion können Sie benutzerdefinierter Header anstelle der Standardeinstellung Header „Autorisierung“.

Dies fügt eine zusätzliche Sicherheitsebene hinzu, da die REST API akzeptiert nur Anfragen mit Ihren definierten benutzerdefinierter Headername. Wenn jemand versucht, eine Anfrage mit dem Standard zu senden Header „Autorisierung“, wird der Zugriff verweigert.


Wie konfiguriere ich einen benutzerdefinierten Header für die WordPress REST-API-Authentifizierung?

  • Zum Plugin Erweiterte Einstellungen Tab.
  • Im Benutzerdefinierte Kopfzeile Geben Sie im Abschnitt Ihren bevorzugten Header-Namen in das Textfeld ein.
  • Änderungen speichern um den neuen benutzerdefinierten Header für API-Anfragen anzuwenden.
  • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode

3. REST-APIs ausschließen:


Die Schließen Sie REST-APIs aus Mit dieser Funktion können Sie bestimmte REST-API-Endpunkte ohne Authentifizierung zugänglich. Diese ausgeschlossenen APIs werden öffentlich verfügbar und sind somit ohne Authentifizierung zugänglich. Zeichen or login.


Wie konfiguriere ich eine ausgeschlossene REST-API in der JWT-Authentifizierung?

  • Zum Plugin Erweiterte Einstellungen Tab.
  • Im Schließen Sie REST-APIs aus Geben Sie im Abschnitt Ihre API-Endpunkte im erforderlichen Format ein.
  • Die eingegebenen APIs werden von der Authentifizierung ausgeschlossen und für den öffentlichen Zugriff verfügbar gemacht.
  • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode
  • Beispiel: Angenommen, Sie möchten die REST-API ausschließen. /wp-json/wp/v2/posts‘, dann müssen Sie ‚/wp/v2/posts‘ in das Textfeld eingeben.

4. Aktivieren Sie die erweiterte Verschlüsselung für die Token mit HMAC:


Diese Funktion ist im Grundlegende AuthentifizierungsmethodeStandardmäßig werden Token verschlüsselt mit Base64-Kodierung, aber mit der erweiterten Option können Sie aktivieren HMAC-Verschlüsselung für Token. HMAC bietet ein viel höheres Maß an Sicherheit und gewährleistet, dass API-Anfragen sind stark gegen Manipulation und unbefugten Zugriff geschützt.

Wie konfiguriere ich die HMAC-Verschlüsselung für Token in der WordPress-Basisauthentifizierung?

  • Zum Plugin Erweiterte Einstellungen Registerkarte und öffnen Sie die Token-Verschlüsselungsmethode .
  • Auswählen HMAC statt Base64 und dann Änderungen speichern um eine sichere Verschlüsselung für alle Token anzuwenden.
  • Postman-Implementierung der WordPress-REST-API-Basisauthentifizierungsmethode



Holen Sie sich die Testversion mit vollem Funktionsumfang



 Vielen Dank für Ihre Antwort. Wir werden uns in Kürze bei Ihnen melden.

Etwas ist schief gelaufen. Bitte senden Sie Ihre Anfrage erneut

Integrieren Sie die externen/Drittanbieter-REST-API-Endpunkte

Hilfe benötigt?

Mailen Sie uns weiter apisupport@xecurify.com für eine schnelle Anleitung (per E-Mail/Besprechung) zu Ihrem Bedarf und unser Team wird Ihnen helfen, die am besten geeignete Lösung/den am besten geeigneten Plan entsprechend Ihrem Bedarf auszuwählen.


ADFS_sso ×
Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Unterstützung