从Laravel应用程序内受身份验证保护的路由获取HTML内容?

时间:2018-08-25 16:33:37

标签: php laravel curl laravel-5 guzzle

我想在laravel应用程序中获取(curl)另一个页面的html内容。

经典方法是:

$client = new Client();
$client = $client->request('GET', route('print.page'))->getBody();

问题是,所有这些路由均受auth保护,我只能从登录页面获取html。

我尝试再次发送登录槽口,但是我认为双重登录不是一个好主意。

是否有更好的方法从受保护的路由中获取html?

1 个答案:

答案 0 :(得分:0)

如果您在控制器调用它,并且您拥有当前经过身份验证的用户,则必须获取会话名称和真实会话ID:

public function FooController() 
{
    $name = Session::getName();
    $sessionId = $_COOKIE[$name];

    $cookieJar = CookieJar::fromArray([
        $name => $sessionId,
    ], 'example.com');

    $client = new Client();
    $body = $client->request( // changed the variable from $client to $body here
        'GET', 
        route('print.page'), 
        ['cookies' => $cookieJar]
    )->getBody(); 
}