我使用larvel 5.2作为我的应用程序,我没有使用laravel身份验证并编写我自己的代码,在成功登录时我将用户名存储在会话变量中并在登录后检查每个请求。我没有更改任何会话设置。我的问题是会话在小于3分钟到期,有时在登录时显示
TokenMismatchException in VerifyCsrfToken.php line 67:
有时只记得。刷新页面后一切正常,登录后3分钟内会话即将到期。我在路线中的代码如下,
Route::get('/', function () {
if(Session::has('username') && Session::get('username') != ""){
return view('index');
}
else{
return redirect('login');
}
});
Route::get('login', function () {
if(Session::has('username') && Session::get('username') != ""){
return redirect('/');
}
else{
return view('login');
}
});
我的登录和会话存储为,
public function checkme(Request $request){
$this->validate($request, [
'username' => 'required',
'password' => 'required'
]);
//return $request->all();
$username = $request->username;
$password = md5($request->password);
$admin = Admin::where('username', $username)
->where('password', $password)
->where('status', 'active')
->first();
if(is_null($admin)){
Session::flash('Invalid','Invalid Credentials..!');
return redirect('login');
}
else{
Session::put('username',$admin->username);
return redirect('/');
}
}
我的登录表单代码,
<form class="login" method="post" action="login">
<input type="hidden" name="_token" value="<% csrf_token() %>">
<input type="text" placeholder="Username" name="username" required="true" />
<input type="password" name="password" placeholder="Password" required="true" />
<input type="submit" value="Login" class="btn btn-info btn-sm" />
</form>
答案 0 :(得分:0)
我得到了解决方案但对我来说似乎很奇怪。
在config/session.php
中
我将此更改为'cookie' => 'laravel_session',
至'cookie' => 'myapp_session',
我从laracasts中得到了这个建议点击link here
我仍然对此感到陌生,如果有人知道问题背后的原因,请告诉我。
答案 1 :(得分:0)
不要忘记Session::save()
或session()->save()