Solución:
Puede deshabilitar CSRF en algunas rutas editando.
AppHttpMiddlewareVerifyCsrfToken
y agregue su propio nombre de rutas en protegido
$except = [] array.
No parece ser una buena práctica, ya que al hacer esto estamos eliminando la función de seguridad de Laravel.
Muchas personas explican cómo hacerlo, pero no explican cómo debería verse la URL.
editar aplicación / Http / Middleware / VerifyCsrfToken.php
namespace AppHttpMiddleware;
use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* Indicates whether the XSRF-TOKEN cookie should be set on the response.
*
* @var bool
*/
protected $addHttpCookie = true;
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'/user/my_function'
];
}
En el $ except array (); agregamos una URL con solo una cadena simple. Esto apunta a un controlador que generalmente depende de cómo esté configurada su ruta.
Por ejemplo, tengo un archivo UserController.php en mi carpeta Controller. Tengo una ruta como. En el archivo de rutas web.php.
Route::post('/user', '[email protected]_function')->name('my_function');
También, alternativamente, si llegó a esta pregunta simplemente porque no sabe cómo usar el CSRF y en realidad no necesita deshabilitarlo, o hacer la URL excepto. Puede utilizar este método.
Agregue estas líneas a su app.blade.php si se usa para llamadas relacionadas con ajax.
<script>
$(function() {
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
});
</script>
Puedes deshabilitarlo en app/http/Kernel.php
en el web
grupo de middleware.
¿Es bueno desactivarlo o no?
No no es. Lea la página de Wikipedia sobre CSRF para comprender qué es CSRF, el CSRF-Token previene CSRF.