When I login for the first time it works perfectly but when I log out from my app and try to re-login I get this error.
I've tried almost every available solutions but can't solve the issue. Any solution to fix this error?
This is how I perform login and logout(Please correct me if the code is wrong as I'm new in laravel).
I've tried laravel-caffeine and {{ csrf_token() }}.
I think this is some session related issue.
public function auth(Request $request)
{
$this->validate($request, [
'email' => 'required|email|max:255',
'password' => 'required|min:6',
]);
$data = $request->only('email', 'password');
if (\Auth::attempt($data)) {
$email = $request->email;
$users = DB::table('users')
->where('email', $email)
->select('users.*', 'user_name')
->get();
Session::put('set', $users);
if ($users[0]->is_admin == '1') {
return redirect()->intended('adminDashboard');
}else{
return redirect()->intended('dashboard');
}
}else{
return back()->withInput()->witherrors(['Email or password did not match!']);
}
}
public function logout(){
Session::flush();
return view('login/login');
}
You error may be coming from your session manipulation. When you do
Auth::attempt($data)
The user is already set in the session. You don't need to do your Session::put()
thingy. To get the user, do
$user = Auth::user();
To logout, you do
Auth::logout(); //will clear the user from the session automatically
So to summarise, remove all the session manipulations you have in your code. Only play with Auth;
Session::flush(); //DELETE THIS LINE
Add Auth to the top of your controller with
use Auth; //easier to work like that.
Maybe the form has not declared the input tag of the token:
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Is your button to disconnect in a form? If so, you need to put this: {{ csrf_field }} in your form of type POST.
Go to config/session file and check if you have this line below:
'domain' => env('SESSION_DOMAIN', null)
If yes, then visit your .env
file and also set like this:
SESSION_DOMAIN=null
Then refresh, should be fine.
来源:https://stackoverflow.com/questions/42687461/laravel-5-4-tokenmismatchexception-in-verifycsrftoken-php-line-68