Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

620
Views
Cada actualización de página genera un nuevo token CSRF que se resuelve en 419 página no encontrada: Laravel

Me encontré con este problema hace unos días después de poner mi sitio web en producción. Después de iniciar sesión o registrarse o cualquier otra solicitud POST, me da el error Página no encontrada 419. En localhost todo funciona bien. Ya me tomó más de 4 días de investigación y no pude encontrar una solución. Probablemente esté relacionado con la verificación CSRF, pero ya probé todas las soluciones (sin éxito).

Las cosas que hice:

  • después de cada formulario que tiene el método POST he puesto @csrf
  • incluido <meta name="csrf-token" content="{{ csrf_token() }}"> en la sección principal
  • cambió SESSION_DOMAIN en el archivo .env a mi dominio de producción
  • caché del navegador borrado seguido de comandos: php artisan cache:clear php artisan route:clear php artisan view:clear php artisan config:clear php artisan view:cache php artisan route:cache
  • generó una nueva APP_KEY con la php artisan key:generate
  • intenté cambiar entre SESSION_DRIVERS de archivo a base de datos
  • verificó el código completo para los espacios en línea antes de ?<php
  • otorgó permisos 777 a www-data para toda la carpeta (acto desesperado)

Lo principal que he notado es que en localhost el token csrf se genera una vez y después de la actualización de la página permanece igual cuando, por otro lado, en el servidor web después de cada actualización de la página cambia. Parece que la sesión no puede contener esa información y da como resultado un error.

Aquí está mi archivo .env

 APP_NAME=Laravel APP_ENV=production APP_KEY=base64:s15iIzuybt78V7zZ7cHqcwCRAr1h6YfEWPArlrcqW3A= APP_DEBUG=false APP_URL=http://mydomain.tk LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=dbname DB_USERNAME=root DB_PASSWORD=dbpass BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 SESSION_DOMAIN=http://mydomain.tk REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Estoy usando Laravel Framework en la versión 8.61.0 y PHP 8.0.10. La única solución que funcionó fue cuando comenté en la sección web de config/Kernel.php this -> \App\Http\Middleware\VerifyCsrfToken::class . Pero no es una solución completamente funcional y segura que estaba buscando. Entonces mi pregunta es, ¿existen otros enfoques para depurar este problema o soluciones que podrían ayudar? Muchas gracias chicos. Si hay algo que necesite saber que puedo proporcionarle, solo pregunte.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Elimina http:// de tu SESSION_DOMAIN .

Si el valor de config('session.domain') no coincide con su nombre de host , cada carga de página generará un nuevo token CSRF.

Así que usa SESSION_DOMAIN=mydomain.tk , SESSION_DOMAIN=.mydomain.tk o déjalo en blanco.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!