2014-02-25 2 views
2

저는 예산 신청서를 작성 중이며 모든 것이 훌륭하게 작동합니다 ... 아니면 최소한 생각했습니다. http://budgeter.pattmorter.webfactional.com/에서 테스트 해보세요. 이제 로그인하여 물건을 추가하고 프로필을 편집하면 좋은 결과를 얻을 수 있습니다. 유일한 문제는 다른 누군가가 나와 로그인하고 페이지를 새로 고침하면 나중에 로그인 한 사람에게 세션을 설정한다는 것입니다.여러 사용자 문제 Node.js

나는 왜 그런 일이 일어 났는지는 잘 모르겠지만 내 주 app.js 노드와 관련이 있습니다. 내 문제는 사용자가 내가 currentUserapp.js에 변수가 너무 다른 모든 라우팅을 통과했지만 그게 이러한 오류의 원인이되기 때문에 올바른지 생각하지 않는다고 생각합니다. 누구든지이 일을하는 더 좋은 방법을 제안합니까?

app.js 파일은 여기에있다 - 기본적으로 https://github.com/M-Porter/bearded-wookie/blob/master/production/app.js

, 나는 app.js 공간에서 변수없이 내가하고 싶은 일을하는 방법을 이해하지 않습니다. 올바른 방향으로 어떤 추진력도 좋을 것입니다.

답변

1

Node.js in Action (훌륭한 책)은 이와 같은 것들을 위해 내장 된 세션 미들웨어를 사용할 것을 제안합니다. 서명 된 쿠키를 사용하므로 cookieParser 미들웨어도 필요합니다. 다음과 같이 표시되어야합니다.

그런 다음 req.session에 액세스하여 현재 사용자를 추적 할 수 있습니다.

편집 1 : 코드를 자세히 살펴 봤습니다. cookieParser 및 세션 미들웨어로 이미 궤도에 올라있는 것 같습니다. 현재 사용자를 세션에 저장해보십시오. 또한 여권은 후속 요청시 사용자 이름을 검색 할 수있는 것처럼 들립니다. 체크 아웃 http://passportjs.org/guide/configure/

+0

완벽한. req.user가 어리석은 __currentUser globar 변수보다는 모두해야한다는 것을 처음에는 깨닫지 못했습니다. – pattmorter