Nodejs请求 - CAS身份验证抓取

时间:2015-09-08 13:26:39

标签: node.js web-scraping request cas

我正在尝试使用CAS进行身份验证。

我目前正在运行node.js request库来发出请求,cheerio用于正文解析。我的应用程序的架构如下所示:

1。在login.XXX.com上转到CAS认证登录页面

我刮掉了隐藏的字段,使我的POST请求看起来就像我在浏览器中看到的那样。创建cookie jar。确定。

2。登录 - POST请求。

我使用相同的cookie jar发送所有数据,并启用followAllRedirects。我可以看到我成功登录,因为我得到了正确的信息。此外,Cookie CASUSERNAMECASTGC会保存到Cookie jar中。

第3。尝试去service.XXX.com

服务

我使用我的cookie jar向服务发出一个简单的GET请求......并且......我没有登录。我无法确定是否在路上有任何XHR请求,我不知道我真的知道如何检查或做些什么才能让自己经过身份验证。

登录后如何获得服务的任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

问题出在哪里:

当我的脚本试图进入服务(service.XXX.com)时,服务站点向CAS登录服务器发送XHR请求(在login.XXX.com上),并尝试重定向回所请求的服务,不知何故导致我的应用程序进入无限重定向循环。

<强>解决方案:

我必须在请求之后发出请求,并仔细地手动将标题(headers.location)重定向(发送GET请求)到站点。 XHR请求创建了PHPSESSID,因此我只需将其保存在我的cookie jar中,然后继续使用我想要的服务站点。

希望它有所帮助。

相关问题