Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel在x次请求后注销用户_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel在x次请求后注销用户

Php Laravel在x次请求后注销用户,php,laravel,laravel-5,Php,Laravel,Laravel 5,在我添加以下显示图像的路径之前,应用程序一直按预期运行: Route::get('/images/workers/{imageName}', function($imageName){ if(Auth::check()){ // Intervention using GD does not have functionality for bmp images //return \Image::make(getenv('IMAGE_DIR') . $imag

在我添加以下显示图像的路径之前,应用程序一直按预期运行:

Route::get('/images/workers/{imageName}', function($imageName){
    if(Auth::check()){

        // Intervention using GD does not have functionality for bmp images
        //return \Image::make(getenv('IMAGE_DIR') . $imageName)->response();

        $filename = getenv('IMAGE_DIR') . $imageName;
        $handle = fopen($filename, "rb");
        $contents = fread($handle, filesize($filename));
        fclose($handle);

        header("content-type: image/bmp");

        echo $contents;

    } else {
        return \Image::make(getenv('IMAGE_DIR') . 'denied.png')->response();
    }
});
在我的一个控制器中,我获取包含这些图像链接的记录,并将它们显示在带有分页的表中。我使用
元素一次显示50条记录,以显示图像(即记录的缩略图)。我通常可以按预期显示前几页,但随后我将开始显示我的
拒绝.png
图像,一旦出现这种情况,我发现我已注销,必须重新登录

我阅读并得出结论,我有一个种族状况发生,不知何故破坏了会话,导致帐户注销。然后,我在我的数据库中创建了一个
sessions
表,并将laravel中的会话驱动程序更改为
database
,但它看起来不像是在使用会话驱动程序进行身份验证?对吗?如果是这样的话,这是一种竞赛条件,我怎么才能绕过它呢

使用laravel 5.2.45

编辑


另外值得注意的是,该环境正在使用nginx/phpfpm。可能是我的大多数请求都是由一个工作线程处理的,但偶尔它们会由另一个工作线程处理,而该线程不知道现有的身份验证会话吗?或者,哪一个工作线程通过fpm处理请求并在它们之间保持身份验证会话无关紧要吗?

似乎用web中间件包装此特定路由解决了问题:

Route::group(['middleware' => ['web']], function () {

    Route::get('/images/workers/{imageName}', function($imageName){
        if(Auth::check()){

            // Intervention using GD does not have functionality for bmp images
            //return \Image::make(getenv('IMAGE_DIR') . $imageName)->response();

            $filename = getenv('IMAGE_DIR') . $imageName;
            $handle = fopen($filename, "rb");
            $contents = fread($handle, filesize($filename));
            fclose($handle);

            header("content-type: image/bmp");

            echo $contents;

        } else {
            return \Image::make(getenv('IMAGE_DIR') . 'denied.png')->response();
        }
    });

});