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