세션 변수 I 세트가 인 경우 다음 페이지 요청에서 정의되지 않은 세션에 문제가 있습니다. 변수를 적절히 설정하려면 일반적으로 다시 흐름을 거쳐야합니다.Node.js 및 익스프레스 세션 문제
나는 세션 변수를 undefined로 설정하려고하지 않는다는 것을 확인할 수 있습니다. 그들은 합법적 인 가치가 있습니다.
내 앱에서 사용자는/twitter/connect/to/twitter/callback /으로 이동합니다. 전자는 트위터로부터 일부 oauth 데이터를 수집하고, 후자는 사용자를 트위터에 기록합니다.
/트위터/연결/간단하다 : 그 후
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);
}
});
});
, 트위터/트위터/콜백에 다시 보냅니다/: 나는 무슨 일이야 아무 생각이
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.
});
, 내가 할 수있는 세션 변수가 제대로 설정되었는지 확인하고, 페이지 요청 사이에 값을 보유하지 않고 처음 만 유지합니다. 난 그냥 지금 dev에 환경이
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: '}}'
});
});
: 내 서버를 만드는거야 방법
이입니다. Node 0.5.0-pre가 설치되어 있지만이 문제는 0.4.1에서도 확인되었습니다. 나는 익스프레스 2.3.2를 사용하고있다.
도움을 주시면 감사하겠습니다.
API를 호출하는 것과 똑같은 문제가 있습니다. 리다이렉션시 세션 정보가 손실되었다고 확신합니다. 즉, 브라우저에서 페이지를 새로 고치면 세션에 넣은 내용이 아직 남아 있음을 알 수 있습니다. 그러나 일부 외부 사이트 (예 : oauth 제공 업체)에서 리디렉션을 통해 * 같은 페이지 *로 이동하면 세션이 완전히 비어 있습니다. 문제가 무엇인지 잘 모릅니다. –
업데이트 : 리디렉션 된 요청에 대해 다른 세션 ID를받는 것처럼 보입니다. –