2012-06-07 3 views
0

mysql으로 로그인하기 위해 https://github.com/jimpick/everyauth-example-password/blob/master/server.js을 수정했습니다.nodejs에서 세션 액세스 문제가 발생 했습니까?

나는 = express.createServer (

express.bodyParser() 
    , express.static(__dirname + "/public") 
    , express.cookieParser() 
    , express.session({ secret: 'htuayreve' }) 
    , everyauth.middleware() 
); 

app.configure(function() { 
    app.set('view engine', 'jade'); 
}); 

app.get('/', function(req, res) { 
    res.render('home', { users: JSON.stringify(usersByLogin, null, 2) }); 
}); 

내가 바닥에서 앱으로 코드를 붙여 넣을 경우 내가 바닥

var에 응용 프로그램에서이 코드를

authenticate(function(login, password) { 
     var errors = []; 
     var user = []; 
     userModule.CheckUserLogin(login, password, function(err, results) { 
      if(results.length > 0) { 
       req.session.login = login; 
       return user; 
      } 
      else { 
       if(!user) return ['Login failed']; 
      } 
     }); 
     return user; 
    }) 

에서 세션에 액세스하려면 그 다음에 everyayth의 라우팅이 작동하지 않습니다. 모든 자동 기능 내부에서 req.session.login에 액세스하는 방법을 간단하게 알고 싶습니다.

답변

1

authenticate 함수에서 세션에 액세스 할 수 없습니다. 인증 된 사용자의 정보에 대한 액세스를 지원하는 모든 방법은 인증 중에 세션에 저장된 사용자의 ID를 사용하여 사용자 레코드를 조회하는 모든 인증에 findUserById 기능을 제공하는 것입니다. 이렇게하면 req.user을 통해 경로 처리기의 모든 사용자 속성에 액세스 할 수 있습니다.

everyauth website의 '사용자 액세스'섹션을 참조하십시오.

관련 문제