我正在尝试通过会话AUTH cookie登录到一个带有phantomJS的网站,我完成了它的代码,一切都运行完美,问题是网站有另外一个登录系统里面有相同的cookie,一旦访问其他页面cookie将更新安全身份验证令牌,所以当我将第一个cookie添加到幻像时,我看到它被设置为只读,因为我无法访问第二个登录系统内的内容,因为网站正在尝试更新我手动添加的Cookie但遗憾的是它失败了,因为cookie设置为只读。
我正在使用的代码:
phantom.addCookie({
'name': 'some name here', /* required property */
'value': 'some hash here',
'domain': 'ea.some domain here.com', /* required property */
'path': '/',
'httponly': false,
'secure': false,
'expires': (new Date()).getTime() + (10000 * 60 * 60) /* <-- expires in 10 hour */
});
我尝试在脚本自动访问需要第二次Auth的页面之前删除会话cookie,但它只是将我注销,因为我需要让我的旧Session认证,以便可以使用新的会话authhash进行更新。
任何想法如何在服务器端请求后更新手动添加的cookie?
答案 0 :(得分:1)
我找到了解决方案,
服务器实际上创建了一个具有相同名称和新值的新cookie。而不是用新值替换它。我在网上搜索了有关此事的任何帮助但是我失败了,我通过获取新cookie的值并将其保存到变量来修复此问题,然后执行phantom.clearcookies()
以删除所有cookie并添加新cookie再次使用我存储的新值,它并不干净,但它确实有效。