登录到外部网站并以登录用户的身份重定向

时间:2018-08-07 00:51:57

标签: php curl web-scraping

非常高兴有人帮助我解决以下问题,您将看到我想创建一个存储外部页面帐户的站点,以便当他们在我的应用程序中输入用户名和密码时,该站点即可实现登录在外部网站中,然后重定向页面如何登录用户。我的问题是,有可能这样做吗?我想用枪口试一下,但是不能,然后尝试了goutte,但是遇到了一个错误,没有检测到田野,该怎么办?谢谢

1 个答案:

答案 0 :(得分:0)

因此,用户将需要与您共享其用户名和密码,并且您将把用户名和密码存储在数据库中,并且该用户名和密码必须是纯文本或以易于转换回纯文本的方式。这是一个大红色的旗子。

如果出于某些正当理由您要这样做,我建议您在Guzzle中使用CookieJar。您可以使用用户凭据发布登录信息,并存储生成的cookie,然后将其发送给标头以及对该用户的任何后续请求。

一些粗略的代码可以帮助您:

$client = new GuzzleHttp\Client;
$filename = $somePath . '/cookies.json';
$jar = new GuzzleHttp\Cookie\FileCookieJar($filename);
// Login
$url = 'http://some_login_url';
$body = [
    'user' => $someUser,
    'pass' => $somePassword
];
$response = $client->post($url, ['cookies' => $jar, 'body' => $body]);
// Make sure the response is valid here
$jar->save($filename);
// Retrieve a private page for a user
$url = 'http://private_page_url';
$response = $client->get($url, ['cookies' => $jar]);
// Make sure the response is valid here
$html = (string) $response->getBody();
// Do scrapy stuff with HTML

很显然,这需要一些工作才能使其有用。