我正在尝试在前端进行一些轮询,以检查不活动的用户,如果他们长时间不活动,则将其引导到登录屏幕。问题是,即使我在应用程序中保持非活动状态,每次我进行ajax调用时,它都将重置会话并表现为用户处于活动状态。似乎ajax调用正在使会话像用户处于活动状态一样起作用。有没有一种方法可以拨打AJAX,而无需像这样重置会话?我尝试将路由添加到我的api.php
路由中,但是如果我通过这些路由检查Auth,则每次都会得到错误(无法访问Auth::user()
)。任何解决此问题的方法。
代码和信息:
使用SESSION_DRIVER=file
(我知道一种解决方法是使用数据库驱动程序,但如果可能的话,我宁愿尝试将其保留在file
内)
UserController.php
public function userLoginPoll(Request $request)
{
$statusArray = [
'logged_in' => Auth::check()
];
return $statusArray;
}
web.php
Route::get('/users_api/userLoginPoll', 'UserController@userLoginPoll');
poll.js
$.poll(3000, function(retry){
$.get('/users_api/userLoginPoll', function(data){
if(data.logged_in){
retry();
}else{
window.location = '/login';
}
});
});