Je viens de créer un nouveau projet de laravel version 5.5 avec l'installateur laravel. Et exécutez la commande "php artisan make: auth ".Les vues et le contrôleur sont générés pour l'authentification de l'utilisateur. Et exécutez également" php artisan migrate "pour créer les tables nécessaires dans la base de données. Lorsque vous visitez la page de connexion et la page d'enregistrement, remplissez le formulaire et soumettez .Il affiche "La page a expiré en raison de l'inactivité. Veuillez actualiser et réessayer.". Mais l'actualisation de la page n'aide pas. Vu dans le code source, où provoque l'exception:
if ($e instanceof ModelNotFoundException) {
$e = new NotFoundHttpException($e->getMessage(), $e);
} elseif ($e instanceof AuthorizationException) {
$e = new AccessDeniedHttpException($e->getMessage());
} elseif ($e instanceof TokenMismatchException) {
$e = new HttpException(419, $e->getMessage());
}
Il semble que "TokenMismatchException" soit à l'origine de ce problème. Quand est-ce arrivé et pourquoi? Je viens de créer ce nouveau projet et je n'ai pas fait d'autres changements. J'espère que vous avez obtenu les points. J'utilise php 7.1.9 (laravel 5.5 nécessite php> 7.0.0) et je sers le projet dans un environnement de développement avec: php artisan serve
J'ai eu le même problème sur localhost:8000
(php artisan serve
). C'est peut-être une coïncidence, mais essayez "navigateur propre", autre que celui que vous avez utilisé avec le développement précédent. Pour moi, cela a fonctionné.
Il semble que le problème soit avec les cookies de développement avec les versions précédentes Laravel, sur la même URL).
je pense que vous avez manqué le jeton csrf.
n'oubliez pas d'utiliser {!! csrf_field() !!}
Dans mon cas, j'ai le même message d'erreur et je me suis dit que j'avais manqué d'ajouter csrf_token
{{ csrf_field() }}
Ou sans assistant de forme qui sera,
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Si cela ne fonctionne pas, alors-
Actualiser le cache du navigateur et j'espère que cela fonctionnera, merci.
J'ai eu le même problème et c'est parce que j'utilisais virtualhost et que j'ai configuré la variable ci-dessous sur mydomain.com. dans le fichier config/session.php
'domain' => env('SESSION_DOMAIN', 'mydomain.com'),
Quand je l'ai changé en null, il a commencé à fonctionner
'domain' => env('SESSION_DOMAIN', 'null'),
Je ne sais pas quelle est la raison derrière cela, mais ça fonctionne bien maintenant.
Il semble s'agir de paramètres d'autorisation sur le stockage et/ou le bootstrap/cache.
J'utilise un serveur Cloudways. J'ai réinitialisé les autorisations sur mon serveur sous Paramètres d'application et cela fonctionne maintenant. Sur mon serveur de développement local, l'équivalent était de définir chmod 777 sur le stockage .. J'avais utilisé 755 auparavant et l'erreur persistait.
Ajouter un jeton csrf
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Ce problème est principalement dû au fait que vous n'avez pas le jeton csrf dans votre formulaire. Lors de la vérification du jeton csrf, il échoue, c'est pourquoi vous obtenez cette page. Laravel a généralement besoin d'un jeton csrf sous toutes ses formes. Vous pouvez ajouter un jeton csrf simplement en l'ajoutant à l'intérieur du formulaire.
{{ csrf_field() }}
Une autre méthode consiste à exclure votre itinéraire dans le middleware verifycsrftoken.
Ajoutez simplement un champ protégé dans le middleware avec le nom de votre itinéraire.
protected $except=[
'1st route',
'2nd route',
.
.
];
Cela devrait fonctionner.
Eu ce problème aussi! Résolu par:
php artisan cache:clear
storage/framework/sessions
le dossier était vide, à l'exception du .gitignore
.si vous avez créé un nouveau projet localhost Vous devez afficher la ligne de configuration/session: 166 si 'secure' => true, vous devez modifier 'secure' => false, lorsque vous montez l'hôte ou le serveur, re-config => true désolé i connaître un peu l'anglais, l'espoir peut vous aider
Je garderais également csrf_token
dans une balise META.
<meta name="csrf-token" content="{{ csrf_token() }}">
J'ai eu ce même problème. vagrant reload --provision
a travaillé pour moi
Je testais uniquement les demandes de publication pour mon API et suis tombé sur le même problème. Je l'ai résolu en ajoutant mon itinéraire au tableau $except
Du middleware VerifyCsrfToken
, c'est-à-dire aller à app/Http/Middleware/VerifyCsrfToken
Et ajouter
protected $except = [
'your/route'
];
Mais si vos demandes proviennent d'une plate-forme ou de vues frontales, il est conseillé d'ajouter {{ csrf_field() }}
dans le formulaire qui envoie la demande.
Salut pour les chemins de groupe que vous souhaitez appliquer à tout le monde, utilisez cette méthode, qui est ma version larvaire 5.5. Utilisez l'étoile => allez dans app/Http/Middleware/VerifyCsrfToken et ajoutez
protected $except = [
'/user/*'
];
C'est aussi le chemin de mon utilisateur
Route::group(['prefix' => 'user', 'namespace' => 'User', 'as' => 'user.'] , function (){