Pregunta sobre API Bearer Auth de Wordpress:

La respuesta a una solicitud de preiluminaci贸n no va con una verificaci贸n de control de acceso

Un usuario pregunt贸 馃憞

Hola, no puedo obtener la se帽al de la aplicaci贸n React en la que estoy trabajando.

Cuando trato de hacer una llamada POST con la API de Fetch al punto final 鈥/ api-bearer-auth / v1 / login鈥 con las credenciales para recibir la se帽al, obtengo una respuesta rechazada con estado no autorizado 401.

Access to fetch at 'https://rest.xxxxxxx.com/wp-json/jwt-auth/v1/token' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

Esto no pasa cuando lo hago desde Postman, aparentemente aqu铆 la forma en que el cartero y el navegador env铆an la aplicaci贸n OPTIONS es diferente, y este plugin parece reclamar la autorizaci贸n para una aplicaci贸n OPTIONS previa al vuelo, que no deber铆a ser necesaria.

He probado otros plugins como 芦JWT Auth禄 y 芦JWT Authentication for WP REST API禄, y funciona perfectamente, pero prefiero usar este ya que da una se帽al de actualizaci贸n y protege los puntos finales. todos, no como los dem谩s.

Espero que puedas resolver esto, o algo que pueda modificar.

Saludos, Jorge.

(@ramirezsandin)

Hace 4 meses, 2 semanas

Lo sentimos, el mensaje de respuesta de error es este:

Access to fetch at 'https://rest.xxxxxxxx.com/wp-json/api-bearer-auth/v1/login' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

(@michielve)

Hace 4 meses, 2 semanas

No puedo probar esto yo mismo ahora, pero es posible que pueda agregar el siguiente c贸digo al plugin:

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
  return $error;
}

Esto debe incluirse en el api-bearer-auth.php archivo justo debajo de la siguiente l铆nea:

public function rest_authentication_errors_filter($error) {

Entonces ahora tienes:

public function rest_authentication_errors_filter($error) {

      if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
        return $error;
      }

      // If $error is not empty, another auth method has set this
      // so we don't need to do anything.
      if (!empty($error)) {
        return $error;
      }

srl鈥

(@ramirezsandin)

Hace 4 meses, 2 semanas

隆Super !, lo que hizo que el c贸digo funcionara perfectamente. 隆Gracias por la ayuda!

(@michielve)

Hace 4 meses, 2 semanas

Est谩 bien, es bueno escucharlo, he creado un nuevo problema con esta soluci贸n.

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *