I want to take user automatically after some alert to the login page because of inactivity. To do that I am submitting logout form using Javascript. Logout Form is generated automatically with other pages(Login, Register etc) after running make:auth command. Even after submitting the same form by using Javascript I am getting "The page has expired due to inactivity" error. Following is form and Javascript code.
Form and Its automatic generated Javascript Code:
<a id="lnkLogout" href="{{ route('logout') }}"
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
Logout</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
My Code:
<script type="text/javascript" language="javascript">
var idleMax = 1; // Logout after 10 minutes of IDLE
var idleTime = 0;
var idleInterval = setInterval("timerIncrement()", 60000); // 1 minute interval
$( "body" ).mousemove(function( event ) {
idleTime = 0; // reset to zero
});
// count minutes
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > idleMax) {
$("#lnkLogout").click();
}
}
</script>
Route for Logout:
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
Function being used to logout user from AuthenticatesUsers trait:
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/');
}