Corrigiendo un “error no autenticado” al usar Laravel Sanctum para SPA
Laravel Sanctum
Puede estar trabajando localmente con el proyecto Laravel; Scaffold una aplicación de front-end con React/Vue/Angular y al realizar solicitudes a rutas envueltas dentro del middleware auth: sanctum, es posible que obtenga un error no autenticado. Es por errores de configuración. Arreglemos esto.
- Asegúrese de que la aplicación laravel esté sirviendo desde localhost (127.0.0.1) haciendo el buen servidor
php artisan serve
. No utilice hosts virtuales porque no puede servir las aplicaciones de front-end desde el mismo host virtual.
- Verifique los números de puerto de su aplicación front-end. Por lo general, la aplicación React sirve en
http://localhost:3000
y la aplicación Vue sirve desdehttp://localhost:8080
.
- Es necesario que la (s) aplicación (es) front-end y la aplicación laravel sirvan desde el mismo dominio, localhost en nuestro caso.
- Establezca dominios con estado de Laravel Sanctum en el archivo .env. Estas son las direcciones de nuestras aplicaciones frontales, incluidos los números de puerto.
SANCTUM_STATEFUL_DOMAINS=localhost:8080,127.0.0.1:8080,localhost:3000,127.0.0.1:3000
- Configure el dominio de sesión en el archivo .env. Necesita cambiar esto en producción a su nombre de dominio.
SESSION_DOMAIN=localhost
- Establecer rutas y supports_credentails en cors.php Las rutas de web.php a las que desea tener acceso en su aplicación front-end deben agregarse a la matriz de rutas.
'paths' => ['api/*', 'login', 'register', 'otp/*', 'sanctum/csrf-cookie'],'supports_credentials' => true,
- Y finalmente, debe realizar solicitudes desde la aplicación de front-end a localhost/api/other-route pero no a 127.0.0.1/api/other-route usando axios.
Recent Post
Obtenga más de la vida eligiendo hacer menos
Obtenga más de la vida eligiendo hacer menos
Depositos: Clasificación de objetos AWS S3 con Lambda
Clasificación de objetos de AWS S3 con Lambda
Capas de Oracle para AWS Lambda
AWS Lambda con capas de Oracle