Suchergebnisse :

×

REST-API OAuth 2.0-Authentifizierungsmethode für WordPress

OAuth 2.0 ist eine der am häufigsten verwendeten Methoden zur Sicherung des Zugriffs auf REST-API-Endpunkte für WordPress. 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 REST-API-Endpunkt für WordPressüberprüft die API die Inhaber-Token um festzustellen, ob auf die angeforderten Ressourcen zugegriffen werden kann. Die Token werden ausgegeben über OAuth 2.0 sind hochgradig verschlüsselt und sicher, wodurch der Schutz sensibler Daten gewährleistet wird. Ähnlich wie JWT-Authentifizierung, OAuth 2.0 bietet erhöhte Sicherheit und zusätzliche Vorteile und ist daher die bevorzugte Methode zur Sicherung von REST-API-Endpunkte für WordPress.



REST-API-Authentifizierung für WordPress

Das REST-API-Authentifizierungs-Plugin für WordPress schützt Ihre REST-APIs vor unberechtigtem Zugriff. Unser Plugin bietet verschiedene Authentifizierungsmethoden wie Basisauthentifizierung, API-Schlüssel-Authentifizierung, 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.
  • Suche nach einem REST API-Authentifizierung Plugin für WordPress 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-Zugangsdaten, Die OAuth 2.0-Authentifizierung in der REST-API-Methode kann Ihnen dabei helfen, dies zu erreichen.
  • Das Plugin bietet eine Login-API für WordPress, sodass Sie die WordPress-Anmeldeinformationen eines Benutzers für diese API. Nach erfolgreicher Validierung erhalten Sie eine Authentifizierung und eine Antwort, die den Zugriff des Benutzers bestätigt.
  • Darüber hinaus ist die OAuth 2.0-Authentifizierung Die REST-API-Methode kann auch verwendet werden, um neue Benutzer in WordPress zu registrieren. 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 RegistrationSobald das Token generiert wurde, kann es mit dem WordPress /users REST-API-Endpunkt Um Benutzer in WordPress sicher zu registrieren, ohne sensible Anmeldeinformationen preiszugeben.

2. Anmeldedaten des Kunden:


Wie lassen sich REST-API-Endpunkte für WordPress sicher authentifizieren bzw. schützen und Benutzer registrieren, ohne Administrator-Zugangsdaten zu verwenden?

  • Wenn Sie auf die zugreifen möchten REST-API für WordPress ohne zu teilen WordPress-Benutzeranmeldeinformationenoder wenn Sie Benutzer in WordPress sicher registrieren möchten, ohne Anmeldeinformationen des Administratorbenutzers, hat das Client Credentials-Methode ist die perfekte Lösung.
  • Anstatt vertrauliche Anmeldedaten preiszugeben, können Sie die Client-Anmeldeinformationen wird vom Plugin bereitgestellt und gewährleistet so, dass kein Risiko einer Kompromittierung der Zugangsdaten 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 REST-API-Endpunkte für WordPress, um einen sicheren und zuverlässigen Zugriff zu gewährleisten.
  • Es besteht keine Notwendigkeit, diese Ablauf-Implementierung hinzuzufügen, da wir kein Ablaufdiagramm beigefügt haben und die Implementierung bereits anhand zweier Anwendungsfälle 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 zum Zugriff auf die Ressource wird mit dem im vorherigen Schritt erhaltenen Zugriffstoken im Authorization-Header mit dem Token-Typ „Bearer“ gesendet. Das Plugin fungiert nun als Authenticator und authentifiziert die API anhand der Token-Gültigkeit. Bei erfolgreicher Validierung erhält der API-Anforderer Zugriff auf die Ressource; andernfalls wird im Fehlerfall eine Fehlermeldung zurückgegeben.


Verwandter Anwendungsfall:

  • Wie kann man Benutzer über die REST-API für WordPress anmelden oder registrieren?
  • 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 die 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 Zeichenkette, während die JWT-Token enthält verschlüsselte Benutzerdetails und wird empfohlen, wenn Sie später WordPress-Profildetails abrufen müssen.
  • REST-API OAuth 2.0-Authentifizierungsmethode für WordPress
  • Klicken Sie auf Konfiguration speichern ermöglichen OAuth 2.0-Authentifizierung und sichern Sie sich Ihr REST-API-Endpunkte für WordPress.
  • Nach dem Speichern erhalten Sie die Kunden-ID, Kundengeheimnis und Token-Endpunkt zum Erhalt des Sicherheitstokens.
  • Sobald die Einrichtung abgeschlossen ist, führen Sie zwei API-Aufrufe durch: zuerst, um das Access/JWT-Token zu erhalten, und dann, um dieses Token zur Authentifizierung von REST-API-Anfragen in WordPress 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 unseres Plugins durchführen, der wie folgt angezeigt wird:
    • 
          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 tatsächliche REST-API-Anfrage an WordPress

    • Sobald Sie das access_token / id_token (JWT-Token) mithilfe des OAuth 2.0 password grant flow erhalten haben, können Sie es verwenden, um den Zugriff auf die REST-API-Endpunkte für WordPress anzufordern, wie unten gezeigt.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization :Bearer <access_token /id_token>
          
    • Anmerkungen: Das oben genannte Token ist standardmäßig 1 Stunde gültig. Es kann bis zu seinem Ablaufdatum mehrfach für verschiedene REST-API-Anfragen verwendet werden. Nach Ablauf des Tokens muss ein neues Token erstellt werden, um auf den REST-API-Endpunkt von WordPress zuzugreifen.
  • 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 die Methode.
  • Wähle die OAuth 2.0-Berechtigungstyp as Gewährung von Client-Anmeldeinformationen.
  • REST-API OAuth 2.0-Authentifizierungsmethode für WordPress mit JWT
  • Klicken Sie auf Konfiguration speichern um die Methode zu aktivieren.
  • Nach dem Speichern erhalten Sie die Kunden-ID, Kundengeheimnis und Token-Endpunkt.
  • Als Nächstes führen Sie zwei API-Aufrufe durch: einen, um das Token zu erhalten, und einen weiteren, um dieses Token zur Authentifizierung von REST-API-Anfragen in WordPress zu verwenden.
  • Ich: Holen Sie sich den Token

    • Nach dem Speichern der obigen Konfiguration 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 den access_token / id_token über die OAuth 2.0-Client-Anmeldeinformationen erhalten haben, können Sie ihn verwenden, um den Zugriff auf den REST-API-Endpunkt für WordPress anzufordern, wie unten gezeigt.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization : Bearer <access_token /id_token>
    • Anmerkungen: Das oben genannte Token ist standardmäßig 1 Stunde gültig. Es kann bis zu seinem Ablaufdatum mehrfach für verschiedene REST-API-Anfragen verwendet werden. Nach Ablauf der Gültigkeitsdauer muss ein neues Token erstellt werden, um den Zugriff auf den REST-API-Endpunkt in WordPress erneut anzufordern.
  • Entdecken Sie unsere Fehlerantwort für OAuth 2.0 mit Client Credentials Grant.
  • Entdecken Sie unsere Entwicklerdokumentation für weitere Informationen an.


Das OAuth 2.0-Methode bietet Ihnen zusätzliche SicherheitseinrichtungenDadurch erhalten Sie mehr Kontrolle über die Token und verbessern somit die Gesamtsicherheit Ihres Systems. Wordpress-Website.


1. Aktualisierungstoken –



REST-API-OAuth-2.0-Authentifizierung für Aktualisierungstoken in WordPress

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 –



REST-API-OAuth-2.0-Authentifizierung für das Widerrufen von Token in WordPress

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 REST-APIs in WordPress.

Das 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.
  • REST-API-OAuth-2.0-Authentifizierungsmethode für die Postman-Implementierung in WordPress
  • Beispiel
  • REST-API OAuth 2.0-Authentifizierungsmethode für die Postman-Methode, um die URL durch die tatsächliche Ressource in WordPress zu ersetzen
  • Beispielhaftes Anfrageformat zum Anfordern von Ressourcen unter Verwendung 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.
  • REST-API-OAuth-2.0-Authentifizierungsmethode für die Postman-Implementierung in WordPress
  • Beispiel
  • REST-API OAuth 2.0-Authentifizierungsmethode für Postman: URL in WordPress durch tatsächliche Ressource ersetzen

  • 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.
  • REST-API-OAuth-2.0-Authentifizierungsmethode für die Postman-Implementierung in WordPress
  • Beispiel
  • REST-API OAuth 2.0-Authentifizierungsmethode für Postman: URL in WordPress durch tatsächliche Ressource ersetzen

  • 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.
  • REST-API-OAuth-2.0-Authentifizierungsmethode für die Postman-Implementierung in WordPress
  • Beispiel
  • REST-API OAuth 2.0-Authentifizierungsmethode für Postman-URLs in WordPress


1. Einschränkung der rollenbasierten REST-API:


Diese Funktion beschränkt REST-API-Zugriff für WordPress basiert auf BenutzerregelnSie können bestimmte Rollen auf eine Zulassungsliste setzen, die Zugriff auf bestimmte Bereiche haben dürfen. REST-API-Ressourcen. Wenn ein REST-API-Anfrage wird erstellt, die Rolle des Benutzers wird überprüft, und der Zugriff wird nur dann gewährt, wenn sich die Rolle auf der Zulassungsliste befindet.


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.
  • REST-API-Basisauthentifizierungsmethode für die Postman-Implementierung in WordPress
  • Im obigen Screenshot ist das Kontrollkästchen für die Abonnentenrolle aktiviert. Das bedeutet, dass ein Benutzer mit der Rolle „Abonnent“ bei einer API-Anfrage keinen Zugriff auf die angeforderte Ressource erhält.

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:


Das Benutzerdefinierte Kopfzeile Mit dieser Funktion können Sie benutzerdefinierter Header anstelle der Standardeinstellung 'Authorization'-Header.

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 konfiguriert man einen benutzerdefinierten Header für die REST-API-Authentifizierung in WordPress?

  • 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.
  • REST-API-Basisauthentifizierungsmethode für die WordPress-Postman-Implementierung

3. REST-APIs ausschließen:


Das Schließen Sie REST-APIs aus Mit dieser Funktion können Sie bestimmte REST-API-Endpunkte Der Zugriff auf diese ausgeschlossenen APIs erfolgt ohne Authentifizierung. Sie werden öffentlich zugänglich gemacht und sind somit ohne weitere Authentifizierung nutzbar. 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.
  • REST-API-Basisauthentifizierungsmethode für die WordPress-Postman-Implementierung
  • Beispiel: Angenommen, Sie möchten die REST-API ausschließen. Wenn Sie /wp-json/wp/v2/posts' angeben, 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 deutlich 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.
  • REST-API-Basisauthentifizierungsmethode für die WordPress-Postman-Implementierung



Holen Sie sich die Testversion mit vollem Funktionsumfang



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

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 Beratung (per E-Mail/in einem persönlichen Gespräch) zu Ihren Anforderungen hilft Ihnen unser Team gerne bei der Auswahl der am besten geeigneten Lösung/des besten Plans.


ADFS_sso ×
Hallo!

Brauchen Sie Hilfe? Wir sind hier!

Unterstützung