TokenMismatchException dans VerifyCsrfToken.php ligne 53 dans Laravel 5.1
Quand j'essaie de connexion me montrer jeton d'erreur. J'ai vérifié jeton en vue de sa forme, il est droit et quand commentaire \App\Http\Middleware\VerifyCsrfToken::class
,
dans le Kernel.php
il me fait me connecter mais après Rediriger vers mon tableau de bord je ne suis pas connecté. J'utilise MAMP sur mac.
<div>
<h1>Login</h1>
<div>
{!! Form::open(['url'=>'user/login','class' => '']) !!}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<ul>
<li><label>Customer Code</label>{!!Form::Text('customer_code',Input::old('customer_code'),['class'=>''])!!}</li>
<li><label>Password</label>{!!Form::Password('password','',['class'=>''])!!}</li>
<li>{!! Form::submit('Submit',array('class' => 'btn')) !!}</li>
</ul>
{!!Form::close()!!}
</div>
<div><a href="{!!URL::to('user/forget_password')!!}">Forget Password</a></div>
</div>
En attendant j'utilise Sentry Package
pour la connexion.
/**
* post_login
*/
public function post_login()
{
try
{
$rules = [
'customer_code' => 'required',
'password' => 'required',
] ;
$message = [
'customer_code.required' => 'erorrr1',
'password.required' =>'error2'
];
$validator = Validator::make(Input::all(), $rules,$message);
if ($validator->fails())
{
return Redirect::back()->withErrors($validator)->withInput();
} //if ($validator->fails())
else
{
$authUser = Sentry::authenticateAndRemember(array(
'customer_code' => Input::get('customer_code'),
'password' => Input::get('password')), false);
if($authUser)
{
//$login = Sentry::loginAndRemember($authUser);
return Redirect::to('user/panel/'.$authUser->id)->with('comment', 'Welcome');
}
else
{
return Redirect::back()->with('comment', 'Error for login');
}
}//validator
}
catch(\Exception $e)
{
return Redirect::back()->withInput(Input::except('password','file'))->withErrors(['ERROR!!!!!']);
}
}
Montrer souhaitez code que vous avez travaillé? besoin de plus d'informations?
Comment avez-vous générer le jeton? montrer le code.
Assurer vous définissez un jeton sur votre formulaire dans la vue; dans un champ caché de préférence
reza où est la "méthode" de votre formulaire????est-ce une requête GET?plz nous montrer votre logique d'authentification et de redirection.
Je pense qu'il a méthode POST par défaut. Il est nécessaire de le configurer manuellement?
Comment avez-vous générer le jeton? montrer le code.
Assurer vous définissez un jeton sur votre formulaire dans la vue; dans un champ caché de préférence
reza où est la "méthode" de votre formulaire????est-ce une requête GET?plz nous montrer votre logique d'authentification et de redirection.
Je pense qu'il a méthode POST par défaut. Il est nécessaire de le configurer manuellement?
OriginalL'auteur reza_khalafi | 2015-06-19
Vous devez vous connecter pour publier un commentaire.
Édité:
Puisque vous êtes en utilisant le Formulaire du générateur de supprimer à partir de votre formulaire. Laravel générateur de formulaire ajoute automatiquement un caché jeton champ de votre formulaire lorsque vous ne
Form::open()
Donc supprimer cette ligne:
Après avoir édité votre question, j'ai remarqué que vous ajoutez à jeton champs. Veuillez vérifier mes édité répondre
OriginalL'auteur Digitlimit
Bien, je pense que tous manqué le Jeton CSRF création tout en déconnexion!
Comme je l'ai résolu le problème.
Juste ajouter le code ci-dessous à l'en-tête.
Et si vous utilisez
{!!Form::open()!!}
va créer automatiquement le jeton. Sinon, vous pouvez utiliserou
juste immédiate de la forme ouverte.
Plus important encore, l'utilisation
return Redirect::to('');
sur la fonction de contrôleur ou d'un rechargement de la page ou de l'ajax recharger que le jeton peut être créé!Comme:
Pour assurer le jeton correctement créés ou cochez pas la case "afficher la source de la page" sur le navigateur et il montre comme:
Je pense que ça pourrait résoudre le problème, comme il a travaillé pour moi!
OriginalL'auteur Honest Knight
Avec une nouvelle installation de Laravel 5.1, sans un compositeur de mise à jour à partir de la version 5.0 vers 5.1 je vois quelques différences, et dans le Middleware dossier.
EncryptCookies.php sont un nouveau Middleware, vérifier si vous l'avez.
Donc, je n'ai pas testé encore, je tranfert à l'instant mes fichiers de ma version 5.0 pour une nouvelle installation de la version 5.1 mais je ne suis sûr que peut être la solution à ce problème, EncryptCookies.php qui était dans la pile de jeton d'erreur d'incompatibilité.
OriginalL'auteur Gabriel Sigouin
Ajoutant
{!! csrf_field() !!}
résolu mon problème comme indiqué ci-dessous:Si l'aide de Laravel helper Form comme ci-dessous:
CSRF Code sera automatiquement ajouté dans votre script html. Assurez-vous également de visualiser le code source dans le navigateur pour être certain qu'un domaine, tel que ci-dessous a été en effet ajouté.
OriginalL'auteur Fokwa Best
Vous ne postez pas votre exemple de code dans votre question.
Donc vérifier votre code avec les options suivantes,
essayer avec un champ caché valeur:
Vous pouvez également utiliser le formulaire de la lame modèle:
Cela va automatiquement ajouter CSRF Code dans votre script html
Plus qu'une chose à inclure dans
<head>
section est:Supprimer CSRF champ caché, comme vous l'avez utilisé le Formulaire::open() CSRF sera automatiquement ajouté. Vous devez également modifier votre méthode de contrôleur nom de "postLogin".
OriginalL'auteur Siddharth Jogia
J'ai été aussi à avoir ce problème lorsque vous essayez de charger un fichier. Le max_post_size était dépassé, dans ce cas, apparemment, toutes les variables sont effacées et, par conséquent, aucun jeton est en cours de réception.
OriginalL'auteur Dennis Koster
Ajouter
<?php echo Form::token(); ?>
de côté la forme.OriginalL'auteur IshaS
Cette solution a fonctionné pour moi:
Ajouter
{{ csrf_field() }}
n'importe où dans le formulaire.OriginalL'auteur Mario Ene
Supprimer App\Http\Middleware\VerifyCsrfToken::classe à partir de $middleware dans Kernel.php.
OriginalL'auteur user1236395
J'ai utilisé le code suivant. Il fonctionne à la perfection.
OriginalL'auteur user3378755
J'ai eu le même problème. Je suis à l'aide de Laravel 5.1.28, php 5.6.13
Après avoir vu le TokenMismatchException dans VerifyCsrfToken, j'ai cherché sur le web pour obtenir des réponses, mais aucun n'a résolu mon problème.
La page a fait envoyer le jeton. Le jeton de valeurs est également visible dans le fichier de session dans le répertoire de stockage/cadre/séances (j'ai désactivé le cryptage de le voir).
Épuisé, je l'ai ré-installer laravel et utilisation de formulaire simple pour les tests, il a travaillé sans jeton d'erreur d'incompatibilité.
Mettre mon code pour le nouvellement installé laravel, morceau par morceau, j'ai enfin trouvé
que le problème a été causé par la doctrine/dbal (je ne sais toujours pas pourquoi).
Retiré du compositeur.json et le problème a disparu.
Dans le compositeur.json, jeton d'erreur d'incompatibilité a été vu avec la ligne suivante:
Votre cas peut être différent, mais vous voudrez peut-être voir si vous changer quoi que ce soit
le compositeur.json qui peuvent être à l'origine du problème.
OriginalL'auteur Brian Ye
J'ai le même problème pendant l'utilisation de ce code
par
{!! csrf_field() !!}
résoudre mon problèmeOriginalL'auteur majid
Cela fonctionne pour moi.
OriginalL'auteur Mamun Rasid