我正在尝试使用CAS进行身份验证。
我目前正在运行node.js request
库来发出请求,cheerio
用于正文解析。我的应用程序的架构如下所示:
1。在login.XXX.com上转到CAS认证登录页面
我刮掉了隐藏的字段,使我的POST请求看起来就像我在浏览器中看到的那样。创建cookie jar。确定。
2。登录 - POST请求。
我使用相同的cookie jar发送所有数据,并启用followAllRedirects。我可以看到我成功登录,因为我得到了正确的信息。此外,Cookie CASUSERNAME
和CASTGC
会保存到Cookie jar中。
第3。尝试去service.XXX.com
服务我使用我的cookie jar向服务发出一个简单的GET请求......并且......我没有登录。我无法确定是否在路上有任何XHR请求,我不知道我真的知道如何检查或做些什么才能让自己经过身份验证。
登录后如何获得服务的任何想法都会非常感激。
答案 0 :(得分:0)
我自己解决了这个问题。
问题出在哪里:
当我的脚本试图进入服务(service.XXX.com)时,服务站点向CAS登录服务器发送XHR请求(在login.XXX.com上),并尝试重定向回所请求的服务,不知何故导致我的应用程序进入无限重定向循环。
<强>解决方案:强>
我必须在请求之后发出请求,并仔细地手动将标题(headers.location
)重定向(发送GET请求)到站点。 XHR请求创建了PHPSESSID,因此我只需将其保存在我的cookie jar中,然后继续使用我想要的服务站点。
希望它有所帮助。