切换帐户时自动注销不起作用,ajax调用出现问题

时间:2019-07-10 06:59:52

标签: javascript php laravel-5.8

我在Laravel非常陌生。我已将javascript用于自动注销功能。问题是当我切换产生问题的帐户时。情况如下:

  • 以超级管理员身份登录
  • 登录后,有一个ServiceProvider列表。单击它将模拟他们,会话数据将替换为该服务提供商。

因此,现在您可以作为服务提供商登录,而无需从超级管理员帐户注销。在这种情况下,显示419个未知状态并重新加载页面的ajax调用将从该帐户注销。

我确实搜索了419个未知状态,但是所有这些都显示了传递CSRF令牌的相同解决方案。就我而言,我已经通过了,但仍然只有在切换帐户时才会显示错误。

真的需要一些解决方案。预先感谢。

以下是我的自动注销代码:

layout / app-inside.blade.php

<script>
var sesnLifeTime = 10 * 60;
var logtime = "{{strtotime(Session::get('logtime'))}}";
var lastActvTime = logtime;

$( "body" ).bind( "mousemove", function() {
    var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
    var stillUtc = moment.utc(date).toDate();
    var nowDateTime = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
    var nowDateTimestamp = moment(nowDateTime).format("X");

    lastActvTime = nowDateTimestamp;
});

document.addEventListener("DOMContentLoaded", function (event) {    
    setInterval(function(){
        var date = moment.utc().format('YYYY-MM-DD HH:mm:ss');
        var stillUtc = moment.utc(date).toDate();
        var nowDateTime = moment(stillUtc).local().format('YYYY-MM-DD HH:mm:ss');
        var nowDateTimestamp = moment(nowDateTime).format("X");

        var idleTime = parseInt(nowDateTimestamp) - parseInt(lastActvTime);

        if(idleTime >= sesnLifeTime)
        {
            $('#myModal').modal('show');
            console.clear();
            console.log("idleTime ==== "+idleTime);
        }
        else
        {
            $.ajaxSetup({
                headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                    url: '/dashboard.setTime',
                    type: 'POST',
                    async: false,
                    data:{'lastActvTime': nowDateTime},
                    success: function(response) {
                        console.log(response+"===="+idleTime);
                    }    
                });
        }
    }, 5000);
});
</script>

上面的ajax是从follwong控制器调用的。

DashboardController

function setTimeAjax(Request $request) {
        $lastActvTime = $request->lastActvTime;

        //== storing and fetching the updated time into session ==//
        $request->session()->put('logtime', $lastActvTime);        
        $data = $request->session()->all();        
        //== storing and fetching the updated time into session ==//

        $logtime = $data['logtime'];
        echo $logtime.'===='.$lastActvTime;        
    }

我每5秒检查一次用户活动。因此,当我切换帐户时,不要注销我的帐户,而应保持登录状态,因为我是活动用户。

0 个答案:

没有答案