2011-11-15 4 views
1

everyauth.everymodule.findUserById는 everyauth가 req.session에서 선택하는 id 매개 변수와 함께 호출됩니다. 그러면 req.user에 전달 된 사용자 정보를로드하는 데 사용할 수 있습니다.everyauth 및 nodejs를 사용하여 사용자 ID 정보를 유지하는 방법

노드 app.js 서버가 다시 시작될 때 localhost에서 세션이 지워집니다.

내가하고 싶은 것은 everyauth에 전달할 수있는 사용자 ID를 포함하는 쿠키를 설정하여 서버를 다시 시작할 때 ID와 everymodule.findUserBy Id가 해당 작업을 수행 할 수 있도록하는 것입니다.

나는 expressjs를 사용하고 있으며 connect-mongodb와 쿠키 세션이 작동하지 않는다는 사실을 발견했습니다. 그렇다면이 문제에 접근하는 방법은 무엇입니까?

다른 말로하면 모든 정보에 미리 정보를 미리 입력 할 수있는 방법이 있습니까?

답변

3

Expressjs 외부에 영구 세션 저장소를 설치해야한다고 생각합니다. 익스프레스의 세션은 기본적으로 메모리에 유지되므로 서버를 다시 시작할 때 세션은 손실됩니다. 내 데이터베이스에 MongoDb를 사용하고 있지만 connect-mongo 이상으로 connect-redis으로 끝났습니다. 세션 데이터를 데이터베이스와 별도로 보관하기를 원했습니다. 필요하다면 잘 모르겠지만 설치가 간단합니다. 또한

, 우리는 주제에있는 동안, 여기에 내가 세션과 다 퉜다 다른 장애물의 몇 가지 :

  • 서버 시간이 올바르게 설정되어, 또는 세션이 조기에 만료 될 수 있는지 확인 .
  • 개발 과정에서 저를 붙잡은 이유 중 하나는 세션이 브라우저에서 제공 한 사용자 에이전트 문자열에 의해 지문을 사용했기 때문입니다. Firebox (FirePHP, Firebug 확장자)에서 첫 번째 요청 후 내 사용자 에이전트 문자열을 수정하는 플러그인을 사용할 수 있음을 알게되었습니다. 이것은 세션이 브라우저가 닫힐 때까지만 유효한 것처럼 행동하게 만들었습니다. 그것을 추적하는 데 며칠이 걸렸습니다.

희망이 도움이됩니다.

관련 문제