인증 미들웨어를 작성 중이며 로그인이 성공적으로 완료되면 이전에 방문한 페이지로 리디렉션됩니다. 여기에 전체 config 블록입니다 : 오류 : app.use(authCheck.run)
이 app.use(express.session)
중일 때 Express.js : 세션 미들웨어를 사용한 후에 리디렉션 할 수 없습니다.
app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.static(__dirname + '/public')); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.session({ secret: '__YouDontKnow__', store: new RedisStore })); app.use(authCheck.run); app.use(express.methodOverride()); app.use(app.router); });
지금, Express는 오류가 발생 그들이 보낸 후 헤더를 설정할 수 없습니다. 내가 app.use(express.session)
이상이 전화를 이동하면
, 그것은 세션이 정의되지 않은 것을 말하는 500 오류가 발생합니다. 그리고 내 auth 함수는 세션 객체에 의존합니다.
어떻게해야합니까?
편집 : 여기 authCheck 기능 : 당신이 goToLastPage()
를 호출 한 후
exports.run = function (req, res, next) {
var urlparser = GLOBAL.urlparser,
url = req.urlp = urlparser.parse(req.url, true),
goToLastPage = function() {
var redirectUrl = (req.session.lastVisitedPage) ? req.session.lastVisitedPage : '/';
console.log("goToLastPage(%s)", redirectUrl);
res.redirect(redirectUrl);
return;
}
// Log out
if (url.pathname == '/user/logout') {
req.session.destroy();
console.log('User has logged out');
goToLastPage();
}
// Log in
if (url.pathname == '/user/login' && req.method == 'POST') {
var email = req.body.login.email,
password = req.body.login.password;
req.session.auth = true;
req.session.userId = 1;
console.log('User has logged in');
goToLastPage();
}
next();
return;
}
authCheck.run에 대한 자세한 정보를 제공 할 수 있습니까 – Menztrual
위를 참조하십시오. –
경로가 전혀 있습니까? 특별히 오류를 던지는 일이 있습니까? – Menztrual