首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无头登录:使用cURL登录并打开远程会话

无头登录:使用cURL登录并打开远程会话
EN

Stack Overflow用户
提问于 2016-09-24 14:37:22
回答 1查看 560关注 0票数 0

我正在尝试使用我的php web应用程序上的一个按钮在另一个网站上启动登录会话。换句话说,我希望我的申请:

  1. 打开一个新的选项卡/窗口(已实现)
  2. 转到另一个网站+登录或
  3. (或者)收集目标站点考虑当前浏览器登录所需的会话数据。

这是实现的(以不完整的方式使用以下代码:

代码语言:javascript
复制
$ch = curl_init();
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_REFERER, $url);

    $result = curl_exec ($ch);
    curl_close ($ch);

    print $result;

这成功地可视化了远程站点的“登录”页面,但是每当我单击该远程站点的任何功能时,我就会得到和明显的404。这是因为我只是通过cURL打印成功登录的输出,而我的浏览器没有处理目标网站上的远程应用程序。例如,我的地址栏显示我在local.dev/loggedin.php中,而不是在secure.Target tsite.com/loggein.php。

这可能是有帮助的:一旦通过浏览器登录,目标网站就会设置一个会话cookie,使会话能够在一定时间内存活下来,因此这也可能是有用的。我的web应用程序可以从curl执行的auth过程中获取和存储会话数据并使用它登录吗?

这可能不可能通过cURL来完成。

我正在考虑解析cookie的响应头并使用php setcookie(),但是它不起作用:我被远程应用程序反弹,就好像我从未登录过一样。

请耐心点,我不是使用卷发的专家。

EN

回答 1

Stack Overflow用户

发布于 2017-02-17 16:22:34

我已经对我自己的一些应用程序这样做了,但是它应该适用于几乎任何可以通过html表单提交登录的应用程序。您不能为此使用curl,因为它正在您的web服务器上运行(无论是在您的本地计算机上,还是在云中某个无关的地方),而不是由您的浏览器实际运行。您的PHP应用程序需要打开一个新的选项卡/窗口,其中包含一个包含所有必要字段的method=、适当的action=“get”或"post“以及action=”目标登录URL“。然后添加一个自动表单提交-例如,在页面加载时使用jQuery $('#form_id').submit()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39677532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档