PhantomJS将cookie设置为读写

时间:2014-02-19 12:03:35

标签: javascript cookies phantomjs

我正在尝试通过会话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?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,

服务器实际上创建了一个具有相同名称和新值的新cookie。而不是用新值替换它。我在网上搜索了有关此事的任何帮助但是我失败了,我通过获取新cookie的值并将其保存到变量来修复此问题,然后执行phantom.clearcookies()以删除所有cookie并添加新cookie再次使用我存储的新值,它并不干净,但它确实有效。