zombie.js在回调中丢失会话

时间:2013-09-27 15:35:01

标签: php node.js session authentication zombie.js

我正在尝试使用zombie.js对PHP应用进行身份验证(尝试了2个symfony2应用和相同的结果)。但是回调中的浏览器会话并不相同。我认为这就是验证失败的原因。

这是我的node.js代码

var Browser = require("zombie");
var assert = require("assert");

// Load the page from localhost
var browser = new Browser();
browser.site = "http://localhost:8000/";
browser.loadCSS = false;
browser.debug = true;

browser.visit("app.php")
    .then(function(){
        console.log(browser.cookies.dump());

        browser.visit("app.php")
            .then(function() {
                console.log(browser.cookies.dump());
            });
    });

browser.visit("app.php")
    .then(function(){
        console.log(browser.cookies.dump());
    });

在回调中使用不同的phpssid结果

$ node test.js    Zombie: Opened window http://localhost:8000/app.php 
Zombie: Closed window http://localhost:8000/app.php 
Zombie: Opened window http://localhost:8000/app.php 
Zombie: GET http://localhost:8000/app.php => 200
Zombie: GET http://localhost:8000/app.php => 200
Zombie: Loaded document http://localhost:8000/app.php
Zombie: GET http://localhost:8000/app.php/js/0b50c2c.js => 200
PHPSESSID=3qsqvtaseidgb5599803evt604; Domain=localhost; Path=/
[ true ]
Zombie: Closed window http://localhost:8000/app.php 
Zombie: Opened window http://localhost:8000/app.php 
PHPSESSID=3qsqvtaseidgb5599803evt604; Domain=localhost; Path=/
[ true ]
Zombie: GET http://localhost:8000/app.php => 200
Zombie: Loaded document http://localhost:8000/app.php
Zombie: GET http://localhost:8000/app.php/js/0b50c2c.js => 200
PHPSESSID=jg9h8e2orbmbfq0dr65ni8ucs7; Domain=localhost; Path=/
[ true ]
Zombie: Event loop is empty

这是zombie.js的错误吗?

1 个答案:

答案 0 :(得分:0)

这是由于php 5.4内置服务器。 我升级到了PHP 5.5,就像一个魅力。

我目前没有描述此行为的链接。