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

时间:2017-02-03 01:48:51

标签: laravel jwt

我正在尝试通过Laravel的5.3 API路由逻辑和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。

0 个答案:

没有答案