Node.js & Express-session-problem

Ich habe ein problem mit sessions, wo manchmal die session-variable, die ich nur set
undefiniert ist auf der nächsten Seite anfordern. Ich in der Regel gehen durch die Strömung
wieder, um richtig legen Sie die Variablen.

Kann ich bestätigen, dass ich nicht versuchen, die session-Variablen auf "undefined"; Sie haben einen echt Wert.

In meiner app, Nutzer, aus - /twitter - /schließen//twitter/callback/. Der ehemalige retreives einige oauth-Daten von twitter, die letztere meldet sich der Benutzer in twitter.

/twitter/connect/ist einfach:

app.get('/twitter/connect/?', function(req, res){
    consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
        if (error){
            //error handling here
        } else {
            req.session.oauthRequestToken = oauthToken;
            req.session.oauthRequestTokenSecret = oauthTokenSecret;

            //if I console.log the two session variables above
            //they have the proper values.

            res.redirect("https://twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);      
        }
    });
});

Danach, twitter sendet Sie zurück an /twitter/callback/:

app.get('/twitter/callback/?', function(req, res){
    console.log(req.session.oauthRequestToken);
    console.log(req.session.oauthRequestTokenSecret);

    //more often than not, the two variables above are
    //undefined.  but not always.  usually on the first
    //pass, never on the second.
});

Ich habe keine Ahnung, was Los ist, kann ich bestätigen, dass die session-Variablen sind richtig eingestellt ist, kann Sie nur nicht halten Ihren Wert zwischen Seite Anfragen, aber nur die erste Zeit.

Dies ist, wie ich bin, schafft mein server:

app.configure('development', function(){
    app.use(express.cookieParser());
    app.use(express.session({ secret:'yodawgyo' }));
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.logger());
    app.use(express.static(__dirname + '/public'));
    app.set('view engine', 'ejs');
    app.set('view options', {
        open: '{{',
        close: '}}'
    });
});

Ich nur eine dev-Umgebung für jetzt. Ich habe Knoten 0.5.0-pre installiert, aber sah dieses Problem auf 0.4.1 als gut. Ich bin mit der express-2.3.2.

Jede Hilfe wird sehr geschätzt.

Ich habe das exakt gleiche Problem aufrufen von API. Ich bin mir ziemlich sicher, dass die session-info verloren geht auf Weiterleitung. Das heißt, wenn ich aktualisieren Sie die Seite in meinem browser, ich kann sehen, dass die Sachen, die ich in die session ist immer noch da. Allerdings, wenn ich an die gleiche Seite über einen redirect von einem externen Standort (z.B. oauth-provider), die Sitzung ist völlig leer. Nicht sicher, was das Problem ist.
Update: wie es aussieht bekommen Sie eine unterschiedliche session-id für die Anfrage umgeleitet.

InformationsquelleAutor ehynds | 2011-05-04

Schreibe einen Kommentar