Ma page d'enregistrement affiche correctement le formulaire avec CsrfToken ({{ csrf_field() }}
) présent dans le formulaire).
Formulaire HTML
<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}">
{{ csrf_field() }}
....
</form>
J'utilise l'authentification intégrée pour les utilisateurs. Je n'ai rien changé, sauf les routes et les redirections.
Lorsque je soumets le formulaire (juste après l'avoir rechargé), l'erreur La page a expiré pour cause d'inactivité. Veuillez rafraîchir et réessayer.
Il me manque peut-être une toute petite chose. Mais je ne suis pas sûr de ce que c'est. Vous pouvez m'aider ?
Mise à jour
J'ai trouvé le problème. Le pilote de session était défini sur array. Je l'ai changé en file et l'erreur a disparu. Mais quel est le problème si j'utilise array ?
**Si vous arrivez à cette réponse directement à partir d'une recherche, vérifiez que vous avez déjà ajouté le jeton csrf à votre formulaire avec {{ csrf_field() }}
comme dans le PO.
Si votre pilote de session est configuré sur file:
Cela peut avoir un rapport avec le fait que le chemin de stockage n'est pas accessible en écriture. C'est là que sont stockées les données de session concernant les jetons si vous utilisez des sessions basées sur des fichiers. Cela peut être vérifié avec is_writable(config('session.files' ;))
.
Pour le PO, le pilote de session a été défini sur array Array n'est utilisé que pour les tests. Comme les données ne sont pas persistantes, il ne sera pas en mesure de comparer le jeton lors de la prochaine requête.
Le pilote array est utilisé pendant les tests et empêche les données stockées dans la session d'être perdues.
dans la session de persister.
https://laravel.com/docs/5.5/session#configuration
Vérifier config/session.php
Enfin, un problème que je viens de rencontrer, nous avions un projet qui avait le domaine de session et les paramètres sécurisés dans config/session.php mais le site de développement n'utilisait pas HTTPS (SSL/TLS). Cela a provoqué cette erreur générique puisque sessions.secure était défini sur true par défaut.
Certaines informations sont stockées dans le cookie et sont liées aux versions précédentes de Laravel en cours de développement. Il y a donc un conflit avec les jetons générés par csrf qui sont générés par une autre version. Effacez simplement le cookie et faites un essai.