Laravel Auth轮询-会话正在通过Ajax调用重置

时间:2018-09-11 16:19:18

标签: javascript php laravel

我正在尝试在前端进行一些轮询,以检查不活动的用户,如果他们长时间不活动,则将其引导到登录屏幕。问题是,即使我在应用程序中保持非活动状态,每次我进行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';
    }
  });
});

Using This Polling JQ Plugin

0 个答案:

没有答案