Resultados de la búsqueda :

×

Método de autenticación OAuth 2.0 para API REST en WordPress

OAuth 2.0 es uno de los métodos más utilizados para proteger el acceso a los puntos finales de la API REST de WordPress . A diferencia de los métodos tradicionales, OAuth 2.0 permite la autorización sin exponer el correo electrónico ni la contraseña del usuario a aplicaciones externas. Este flujo de autenticación utiliza el protocolo OAuth 2.0 para generar un token de acceso seguro o token de ID (token JWT) , que luego se utiliza para autenticar todas las solicitudes a la API. Cada vez que se realiza una solicitud a un punto final de la API REST de WordPress , la API verifica el token Bearer para determinar si se puede acceder a los recursos solicitados. Los tokens emitidos mediante OAuth 2.0 están altamente cifrados y son seguros, lo que garantiza que los datos confidenciales permanezcan protegidos. Si bien es similar a la autenticación JWT , OAuth 2.0 proporciona seguridad mejorada y beneficios adicionales, lo que lo convierte en el método preferido para proteger los puntos finales de la API REST de WordPress.



Autenticación de API REST para WordPress

El plugin de autenticación de API REST para WordPress protege tus API REST contra el acceso no autorizado. Ofrece múltiples métodos de autenticación, como autenticación básica, autenticación con clave API, autenticación OAuth 2.0 y autenticación JWT.

Para saber más   

  • Inicie sesión en su instancia de WordPress como administrador.
  • Ir a WordPress Panel → Complementos y haga clic en Añadir nuevo.
  • Buscar un Autenticación de API REST complemento para WordPress y haga clic en Instalar ahora .
  • Una vez instalado, haga clic en Activa.


1. Concesión de contraseña:


¿Cómo registrar o autenticar de forma segura a los usuarios de WordPress en plataformas externas a través de la API REST?

  • Si tiene un formulario de inicio de sesión en su aplicación y desea autenticar a los usuarios mediante su credenciales de WordPress, té Autenticación OAuth 2.0 El método API REST puede ayudarle a lograrlo.
  • El complemento proporciona una API de inicio de sesión para WordPress, lo que le permite pasar la Credenciales de WordPress de un usuario a esta API. Tras la validación, recibirá la autenticación y una respuesta que confirma el acceso del usuario.
  • Además, la Autenticación OAuth 2.0 En el método de la API REST también se puede utilizar para registrar nuevos usuarios en WordPress usando credenciales de administrador. A través del complemento Punto final de token de OAuth 2.0, puedes enviar Credenciales de administrador de WordPress para generar un token con capacidades de administrador.
  • Este token se puede utilizar luego para realizar operaciones privilegiadas como: registro de usuarioUna vez generado, el token se puede utilizar con el Punto final de la API REST de WordPress/usuarios para registrar usuarios de forma segura en WordPress sin exponer información de inicio de sesión confidencial.

2. Credenciales del cliente:


¿Cómo autenticar o proteger de forma segura los puntos finales de la API REST para WordPress y registrar usuarios sin utilizar las credenciales de administrador?

  • Si desea acceder al API REST para WordPress sin compartir Credenciales de usuario de WordPresso si desea registrar usuarios en WordPress de forma segura sin utilizar credenciales de usuario administrador, Método de credenciales del cliente es la solución perfecta.
  • En lugar de exponer detalles de inicio de sesión confidenciales, puede utilizar el credenciales del cliente proporcionado por el complemento, lo que garantiza que no exista riesgo de que las credenciales se vean comprometidas.
  • El complemento actúa como un Proveedor de identidad OAuth 2.0 (servidor) para emitir tokens seguros y como Autenticador de API REST para validarlos.
  • Una vez obtenido, el token puede autenticarse Puntos finales de la API REST para WordPress, garantizando un acceso seguro y fiable.
  • No es necesario añadir esta implementación de flujo, ya que no hemos incluido un diagrama de flujo y la implementación ya se ha explicado a través de dos casos de uso.
    • 1. La solicitud a la API REST se realizará con los parámetros adecuados para obtener el token para nuestro complemento. Nuestro complemento actuará como proveedor de identidad OAuth 2.0 y proporcionará el token de acceso.

      2. La solicitud a la API REST para acceder al recurso se realizará con el token de acceso recibido en el paso anterior, el cual se incluirá en el encabezado de autorización con el tipo de token Bearer. El complemento actúa como autenticador para verificar la validez del token en la API. Si el token se valida correctamente, se permitirá al solicitante acceder al recurso; de lo contrario, si la validación falla, se devolverá una respuesta de error.


Caso de uso relacionado:

  • ¿Cómo iniciar sesión o registrar usuarios utilizando la API REST para WordPress?
  • ¿Cómo autenticar a los usuarios de WordPress usando la API?


  • Vaya a Configurar Autenticación API pestaña en el complemento y seleccione Autenticación OAuth 2.0 como método.
  • Seleccione el elemento Tipo de concesión de OAuth 2.0 as Concesión de contraseña.
  • Elija el tipo de token como El acceso de emergencia or Ficha JWT. La función de El acceso de emergencia es una cadena aleatoria, mientras que la Token JWT Contiene detalles de usuario codificados y se recomienda si necesita obtener detalles del perfil de WordPress más adelante.
  • Método de autenticación OAuth 2.0 para la API REST de WordPress
  • Haga clic en Guardar configuración para permitir Autenticación OAuth 2.0 y asegura tu Puntos finales de la API REST para WordPress.
  • Después de guardar, obtendrás el ID de cliente, Secreto del cliente, y Punto final del token para obtener el token de seguridad.
  • Una vez completada la configuración, realice dos llamadas a la API: primero para obtener el token de acceso/JWT y, a continuación, para utilizar ese token para autenticar las solicitudes de la API REST en WordPress.

    I: Obtener la ficha

    • Para obtener el token de acceso/token JWT, deberá realizar una llamada a la API del punto final de token de OAuth 2.0 proporcionado por nuestro complemento, como se muestra a continuación.
    • 
          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'
          
    • Usando el token de actualización
    • 
          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: Enviar una solicitud real a la API REST para WordPress

    • Una vez que obtenga el access_token / id_token (token JWT) mediante el flujo de concesión de contraseña de OAuth 2.0, podrá usarlo para solicitar el acceso a los puntos finales de la API REST para WordPress, como se muestra a continuación.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization :Bearer <access_token /id_token>
          
    • NOTA: El token mencionado tiene una validez de 1 hora por defecto. Este token se puede usar varias veces para realizar múltiples solicitudes a la API REST antes de que caduque. Una vez que el token caduca, es necesario crear uno nuevo para acceder al punto final de la API REST de WordPress.
  • Consulte el Respuesta de error para OAuth 2.0 mediante la concesión de contraseña.


  • En el complemento, vaya a Configurar Autenticación API pestaña y seleccione Autenticación OAuth 2.0 como método.
  • Elija el Tipo de concesión de OAuth 2.0 as Concesión de credenciales de cliente.
  • Método de autenticación OAuth 2.0 para la API REST de WordPress mediante JWT.
  • Haga clic en Guardar configuración para habilitar el método.
  • Después de guardar, obtendrás el ID de cliente, Secreto del cliente, y Punto final del token.
  • A continuación, realiza dos llamadas a la API: una para obtener el token y otra para utilizar ese token para autenticar las solicitudes a la API REST en WordPress.
  • I: Obtener la ficha

    • Tras guardar la configuración anterior, obtendrá el ID de cliente, el secreto de cliente y el punto final del token.
    • Para obtener el token, debe enviar una solicitud de token como se muestra a continuación
    • 
          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'
          
    • Usando el token de actualización
    • 
          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: Enviar solicitud de API

    • Una vez que obtenga el access_token / id_token mediante las credenciales de cliente de OAuth 2.0, podrá utilizarlo para solicitar el acceso al punto final de la API REST para WordPress, como se muestra a continuación.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization : Bearer <access_token /id_token>
    • NOTA: El token mencionado tiene una validez de 1 hora por defecto. Este token se puede usar varias veces para realizar múltiples solicitudes a la API REST antes de que caduque. Una vez que el token caduca, es necesario crear uno nuevo para acceder al punto final de la API REST en WordPress.
  • Consulte el Respuesta de error para OAuth 2.0 mediante la concesión de credenciales de cliente.
  • Consulte el documentación del desarrollador para más información.


El método OAuth 2.0 le proporciona funciones de seguridad adicionales , lo que le permite tener un mayor control sobre los tokens y, por lo tanto, mejorar la seguridad general de su sitio web de WordPress.


1. Actualizar token -



Autenticación OAuth 2.0 mediante API REST para token de actualización en WordPress

Habilite la opción Token de actualización para recibir un token de actualización junto con el token de acceso o el token JWT.

Los usuarios pueden seguir accediendo a los mismos recursos sin tener que iniciar sesión nuevamente.

Los tokens de actualización permiten emitir tokens de acceso de corta duración para una mayor seguridad.

Cuando caduca un token de acceso , el token de actualización genera uno nuevo de forma segura.


2. Revocar token -



Autenticación OAuth 2.0 mediante API REST para la revocación de tokens en WordPress.

Habilite la opción Revocar token para invalidar un token de acceso o un token JWT existente.

Una vez revocado, el token no se puede utilizar para autenticar las API REST en WordPress.

La API REST primero valida las credenciales de la aplicación y comprueba si el token pertenece a la aplicación solicitante.

Si la validación pasa, el token se invalida; las validaciones fallidas devuelven un error.


 
    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"))   
    

  • Solicitud de muestra para obtener token:
  • Puede descargar el ejemplo de solicitud de cartero desde aquí.
  • Ahora extrae el archivo zip e importar el extraído archivo json dentro del Aplicación de cartero.
  • Método de autenticación OAuth 2.0 de la API REST para la implementación del método Postman en WordPress
  • Ejemplo
  • Método de autenticación OAuth 2.0 de la API REST para Postman: reemplace la URL del recurso real en WordPress.
  • Formato de solicitud de ejemplo para solicitar recursos utilizando el token obtenido en el paso anterior.
  • Puede descargar el ejemplo de solicitud de cartero desde aquí.
  • Ahora extrae el archivo zip e importar el extraído archivo json dentro del Aplicación de cartero.
  • Método de autenticación OAuth 2.0 para la API REST en la implementación de Postman en WordPress.
  • Ejemplo
  • Método de autenticación OAuth 2.0 de la API REST para Postman: reemplaza la URL del recurso real en WordPress.

  • Solicitud de muestra para obtener token:
  • Puede descargar el ejemplo de solicitud de cartero desde aquí.
  • Ahora extrae el archivo zip e importar el extraído archivo json dentro del Aplicación de cartero.
  • Método de autenticación OAuth 2.0 para la API REST en la implementación de Postman en WordPress.
  • Ejemplo
  • Método de autenticación OAuth 2.0 de la API REST para Postman: reemplaza la URL del recurso real en WordPress.

  • Puede descargar el ejemplo de solicitud de cartero desde aquí.
  • Ahora extrae el archivo zip e importar el extraído archivo json dentro del Aplicación de cartero.
  • Método de autenticación OAuth 2.0 para la API REST en la implementación de Postman en WordPress.
  • Ejemplo
  • Método de autenticación OAuth 2.0 de la API REST para la URL de Postman y el recurso real en WordPress.


1. Restricción de API REST basada en roles:


Esta función restringe el acceso a la API REST de WordPress según los roles de usuario . Puedes crear una lista de permisos para roles específicos que tengan acceso a determinados recursos de la API REST . Cuando se realiza una solicitud a la API REST , se verifica el rol del usuario y solo se concede el acceso si dicho rol se encuentra en la lista de permisos.


¿Cómo configurar la restricción de API REST basada en roles en WordPress?

  • Ir al complemento Configuración Avanzada .
  • En la sección Restricción basada en roles Sección, todos los roles tienen permitido acceder a las API de forma predeterminada.
  • Habilite la casilla de verificación junto a los roles a los que desea restringir el acceso a las API.
  • Método de autenticación básica de la API REST para la implementación de Postman en WordPress
  • En la captura de pantalla anterior, la casilla de verificación del rol de suscriptor está habilitada. Por lo tanto, cuando un usuario con el rol de suscriptor realice una solicitud a la API, no podrá acceder al recurso solicitado.

Nota: La función de restricción basada en roles es válida para la autenticación básica (nombre de usuario: contraseña), el método JWT y OAuth 2.0 (concesión de contraseña).


2. Encabezado personalizado:


La función de encabezado personalizado le permite utilizar un encabezado personalizado en lugar del encabezado predeterminado 'Authorization'.

Esto añade una capa adicional de seguridad, ya que la API REST solo aceptará solicitudes con el nombre de encabezado personalizado que hayas definido . Si alguien intenta enviar una solicitud utilizando el encabezado predeterminado "Authorization" , se le denegará el acceso.


¿Cómo configurar un encabezado personalizado para la autenticación de la API REST en WordPress?

  • Ir al complemento Configuración Avanzada .
  • En la sección Personalizar encabezado Sección, ingrese el nombre de encabezado preferido en el cuadro de texto.
  • Guardar los cambios para aplicar el nuevo encabezado personalizado para solicitudes de API.
  • Método de autenticación básica de la API REST para la implementación de WordPress en Postman

3. Excluir las API REST:


La función Excluir API REST permite que se acceda a determinados puntos finales de API REST sin autenticación. Estas API excluidas pasan a estar disponibles públicamente, lo que permite acceder a ellas sin necesidad de un token o inicio de sesión.


¿Cómo configurar la API REST excluida en la autenticación JWT?

  • Ir al complemento Configuración Avanzada .
  • En la sección Excluir API REST Sección, ingrese sus puntos finales de API en el formato requerido.
  • Las API ingresadas serán excluidas de la autenticación y estarán disponibles para acceso público.
  • Método de autenticación básica de la API REST para la implementación de WordPress en Postman
  • Ejemplo: Supongamos que desea excluir la API REST ' ' /wp-json/wp/v2/posts' entonces tienes que introducir '/wp/v2/posts' en el cuadro de texto.

4. Habilite el cifrado avanzado para los tokens usando HMAC:


Esta función está disponible en el método de autenticación básica . Por defecto, los tokens se cifran mediante codificación Base64 , pero con la opción avanzada, puede habilitar el cifrado HMAC para los tokens. HMAC proporciona un nivel de seguridad mucho mayor, lo que garantiza que las solicitudes a la API estén fuertemente protegidas contra manipulaciones y accesos no autorizados.

¿Cómo configurar el cifrado HMAC para tokens en la autenticación básica de WordPress?

  • Ir al complemento Configuración Avanzada pestaña y abra la Método de cifrado de token .
  • Seleccionar HMAC en lugar de Basexnumx, luego guardar cambios para aplicar cifrado seguro para todos los tokens.
  • Método de autenticación básica de la API REST para la implementación de WordPress en Postman



Obtenga una prueba con todas las funciones



 Gracias por su respuesta. Nos pondremos en contacto con usted pronto.

Algo salió mal. Por favor envíe su consulta nuevamente

Integre los puntos finales de API REST externos/de terceros

¿Necesitas ayuda?

Escríbanos a apisupport@xecurify.com para obtener orientación rápida (por correo electrónico o reunión) sobre sus necesidades y nuestro equipo le ayudará a seleccionar la solución o el plan más adecuado según sus requisitos.


ADFS_sso ×
¡Hola!

¿Necesitas ayuda? ¡Estamos aquí!

múltiples proveedores