Soporte » WordPress Avanzado » Error jwt_auth_no_auth_header al validar el token JWT de la API REST de WordPress

  • Estoy teniendo problema para validar el token «JWT Authentication WP-API».

    Recibo bien el token mediante «wp-json/jwt-auth/v1/token» pero a validar el token para obtener la información del usuario mediante «wp-json/jwt-auth/v1/token/validate» me da el siguiente error:

    { "code": "jwt_auth_no_auth_header", "message": "Authorization header not found.", "data": { "status": 403 } }

    Envío por Post code:»jwt_auth»

    ¿Alguna idea de cual puede ser el error? ¿Habría otra manera de poder obtener los datos de cliente mediante el token?

    Muchas gracias. Saludos

    • Este debate fue modificado hace 1 año, 6 meses por LGrusin.
    • Este debate fue modificado hace 1 año, 6 meses por Fernando Tellado. Razón: Etiquetado del código
Viendo 1 respuesta (de 1 total)
  • Hola Sailer999,

    ¿Tu servidor corre con Apache o con Nginx? Si es Apache debes editar el archivo .htaccess o las cabeceras no estarán (server side) en la respuesta.

    Inspecciona tu .htaccess. Debe tener un aspecto parecido a este:

    RewriteEngine On
    RewriteBase /
    
    # Enable HTTP Auth
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
    
    # WordPress
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    # For SetEnvIf Authorization
    #RewriteRule (.*) - [env=myenv:1]
    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
    #SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

    A las malas puedes forzar el envío de cabeceras editando el plugin (NO LO RECOMIENDO, pero puede ayudar). En el plugin, en el archivo jwt-authentication-for-wp-rest-api/class-jwt-auth-public.php, busca en la función llamada validate_token, después de la comprobación de $auth, añade este fragmento de código:

    if ( ! $auth ) {
         $allHeaders = getallheaders();
         $auth = isset( $allHeaders['Authorization'] )? $allHeaders['Authorization'] : false;
    }

    Esto debe conseguirte la cabecera de Authentication y el plugin JWT debe funcionar correctamente.

Viendo 1 respuesta (de 1 total)
  • El debate ‘Error jwt_auth_no_auth_header al validar el token JWT de la API REST de WordPress’ está cerrado a nuevas respuestas.