编程语言
首页 > 编程语言> > php-Laravel会话通过Ajax调用自动扩展?

php-Laravel会话通过Ajax调用自动扩展?

作者:互联网

我有一个间隔运行的小JS脚本:

<script>
    function checkAuthState() {
        $.get('/session/check', function(response) {
            console.log(response);
        });
    }

    setInterval(checkAuthState, 10000);
</script>

控制器动作是-当前-虚拟动作:

<?php

    public function checkAuthState() {
        return response()->json(array('success' => true));
    }

我注意到的是,每次进行Ajax调用时,laravel_session cookie的到期日期都会自动延长-10秒(与JS间隔匹配).

为什么会这样?

我需要为会话期满时的情况添加一个处理程序,但是显然每10秒钟命中服务器会阻止一次(?).我糊涂了.

我的session.php配置中的重要设置:

'lifetime' => 1, /* 1 min, for testing purposes */
'expire_on_close' => false,

解决方法:

当访问者似乎已离开站点并离开该站点时,会话将终止.假定为“他们上次向站点提出请求后的一定时间”.

Ajax请求是一个请求(就服务器而言,它就像其他请求一样),因此cookie会像其他任何请求一样被扩展.

标签:laravel-5-4,laravel,php
来源: https://codeday.me/bug/20191025/1928447.html