Laravel 5.3 API路由不保存请求之间的会话

Laravel 5.3 API路由不保存请求之间的会话,laravel,jwt,Laravel,Jwt,我试图通过Laravel的5.3API路由逻辑和JWT构建一个静态HTML查看器。这些文件都存储在S3上,需要进行保护,所以我认为最好的方法是制作一种代理,让所有文件都通过。这样,我就可以从API请求中检查用户的令牌,并相应地加载文件 第一个文件加载良好 http://example.com/api/proxy/file.html?token={token} 当HTML文件试图从自身加载文件时,会出现问题。当我去掉身份验证函数时,它就工作了,所以我知道获取文件时不会出现问题。这是因为令牌不会附

我试图通过Laravel的5.3API路由逻辑和JWT构建一个静态HTML查看器。这些文件都存储在S3上,需要进行保护,所以我认为最好的方法是制作一种代理,让所有文件都通过。这样,我就可以从API请求中检查用户的令牌,并相应地加载文件

第一个文件加载良好

http://example.com/api/proxy/file.html?token={token}
当HTML文件试图从自身加载文件时,会出现问题。当我去掉身份验证函数时,它就工作了,所以我知道获取文件时不会出现问题。这是因为令牌不会附加到未来的请求中。它发送此消息时不带令牌

http://example.com/api/proxy/some_image.png
我试图将以下代码添加到我的令牌检查器逻辑中

public function __construct(JWTAuth $jwtAuth)
{
    $this->middleware(function ($request, $next) use ($jwtAuth) {
        if (!$jwtAuth->getToken()) {
            if (!Auth::user()) {
                return response()->error('The token could not be parsed from the request', 400);
            } else {
                $this->authUser = Auth::user();
            }
        } else {
            $this->authUser = $jwtAuth->parseToken()->authenticate();
            Auth::setUser($this->authUser);
        }

        return $next($request);
    });
}

但由于某些原因,这不起作用。当第一个.html加载令牌时,它会尝试使用Laravel的Auth中间件对用户进行身份验证,但Auth::user()在图像请求中返回null。

如果您使用的是routes/api.php文件,该中间件处理api路由组中未加载的会话。尝试将API路由移动到routes.php,看看这是否解决了您的问题该中间件的名称是什么?我将尝试将其添加到代理路由。在app/http/kernel.php中,在web middlware组中检查StartSession中间件。将该行复制到itI下面的API中间件组中我刚才尝试过,但仍然不记得请求之间的身份验证用户。我也按照您最初的建议将其放入web路由中,但仍然收到相同的错误。