2011-11-06 13 views
6

Ho problemi a ottenere i dati "cookie" dalla mia autorizzazione socket.io.node.js + express.js + socket.io autorizzazione: nessun cookie

io.configure(function() { 
io.set('authorization', function (data, cb) { 
    console.log(data); 
    // data.headers.cookie <-- should be the cookie 
}); 
}); 

Allora, qual è la stampa:

{ headers: 
{ host: 'frisr.dk:1000', 
connection: 'keep-alive', 
origin: 'http://frisr.dk', 
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2', 
accept: '*/*', 
referer: 'http://frisr.dk/', 
'accept-encoding': 'gzip,deflate,sdch', 
'accept-language': 'da-DK,da;q=0.8,en-US;q=0.6,en;q=0.4', 
'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' }, 
address: { address: '80.71.135.24', port: 53549 }, 
time: 'Sun Nov 06 2011 22:34:12 GMT+0000 (UTC)', 
query: { t: '1320610986125' }, 
url: '/socket.io/1/?t=1320610986125', 
xdomain: true, 
secure: undefined, 
issued: 1320618852796 } 

è possibile controllare il codice qui fuori: http://frisr.dk

Perché il cookie non è disponibile?

+2

Perché non c'è 'proprietà cookie' in' data.headers' ... –

+1

Come faccio ad avere lì: D – Danielss89

+0

Hai avuto per risolvere questo problema? Sto avendo un problema simile. – user482594

risposta

0

Date un'occhiata a this question quanto riguarda socket.io e l'autenticazione. In realtà, non c'è davvero a bunch di domande su questo argomento :)

+1

Ma quello che dovrebbe funzionare. Funziona su un altro server che ho, ma non ho idea sul perché non funziona su questo server. – Danielss89

0

Forse si dà un'occhiata, non v'è alcuna intestazione "cookie", qualcosa di simile a

cookie: sid=whatsoever 

Credo che qualcosa non va in voi app. js file di configurazione. Se non hai creato la tua applicazione utilizzando il comando $ express --sessions myApp nella cartella applicazione principale, non si avrà alcun cookie nelle intestazioni.

Per assicurarsi di avere i cookie, prova a guardare la configurazione app.js:

app.configure(function(){ 
    app.set('port', process.env.PORT || 8080); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    //this snippet here 
    app.use(express.cookieParser('your secret here')); 
    app.use(express.session()); 
    //end of snippet 
    app.use(app.router); 
    app.use(require('less-middleware')({ src: __dirname + '/public' })); 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 
1

Cookie non è provvisto sia impostato durante la richiesta stretta di mano. Probabilmente biscotto è già impostato per altro server/dominio e questo è il motivo per cui sul secondo server esiste nel vostro oggetto di dati. Controlla se il cookie è impostato per questo dominio in firebug ot smth.