Server Side JavaScript

댓글

댓글 본문
작성자
비밀번호
  1. 임지호
    여기에 한가지 더해서 TravelDreammer님이 알려주신대로 해서 로그인은 됬는데 로그아웃이 안되더라구요
    로그아웃에서도
    delete req.session.displayName;
    req.session.save(function() {
    res.redirect('/welcome');
    });
    req.session.save()문 넣어주니까 제대로 동작하더군요
    제 짧은 생각으로는 저를 포함해서 안됬던 분들은 session 정보를 바꾸고 나서 그게 저장이 안됬던 것 같은데
    req.session.save()문으로 명시적으로 저장해주어서 제대로 동작이 됬던 것 아닐까 추측해봅니다
    대화보기
    • hjhyun123
      안녕하세요 egoing님. 열혈 수강자중에 한명입니다.
      orientDB를 이용한 세션스토어 적용을 하고 웹서버 작동 상태에서 /welcome 페이지로 접속하려고 하는데 자꾸 로딩만 될뿐 페이지로 접속되지 않습니다. 원인을 알수없어 댓글을 남깁니다 파일 상태로 저장하는 세션 스토어 부분에는 잘 작동했는데..
    • fallback
      같은 문제때문에, connect-loki로 바꿔서 사용중입니다.
      대화보기
      • analogsoul91
        windows 사용자 중에 저와 비슷한 문제가 발생하시는 분 있으실거 같아서 올리게 되었어요!

        저의 컴퓨터는 windows 10 Pro, nodejs v4.4.5 LTS 입니다.

        첫 번째 문제로 app_session_file.js를 하는 과정에서 ./session 디렉토리에 .json 파일이 재생성되는 문제가 발생했어요.

        -> app.use(session({ ... })안 property 중에 store: new FileStore()에서 option을 줄 수 있는데 option으로 path를 잡아주니 해결이 되었어요.

        -> store: new FileStore( { path: './sessions/'} ) 라고 해주었습니다.

        두 번째 문제로 Error : EPERM: operation not permitted, rename ... 하고 파일이름 뒤에 시간정보 같은게 붙는 파일 명에서 없는 정보의 이름으로 연결 시켜주라는 식의 error가 계속 발생되어 supervisor를 사용했더니 충돌이 자꾸 발생해서 무한 재실행 되었어요.

        혹시나 아시는 분이 있다면 알려주세요!!

        http://stackoverflow.com......ows
      • TravelDreammer
        https://opentutorials.org......078
        의 마지막 강의 끝부분에 해결하는게 나옵니다!!

        결론은

        return req.session.save(function(){
        res.redirect('/welcome');
        })
        으로 하시면 됩니다~!

        조건을 걸어도 밑에 것도 실행되서 그런것 같습니다~!
        대화보기
        • 혹시 그 문제 해결 방법 아시면 알려주세요 저도 session 을 파일로 저장하는 부분에서 로그인을 해도 session data가 변경 되지 않아서(DisplayName 추가 안됨) 계속 Welcome login 창만 뜨고 있습니다.
          정보가 맞지 않은 경우 send를 redirect로 바꿔도 결과가 같습니다.
          대화보기
          • TravelDreammer
            Can't set headers after they are sent.
            이라고 console.log에 떠서 검색해보니

            로그인의 정보를 받아주는 post에서
            정보가 맞으면 redirect가 되고 정보가 맞지 않으면 send로 처리한게 문제였던거 같습니다~
            구글리을 해보니까 redirect와 send 는 같이쓰면 안된다고 하는데 send부분을 redirect welcome으로 해주면 되더라구요~ 이게 이유가 맞나 궁금합니다
          • TravelDreammer
            mysql은 방법으로는 잘 작동이 되는데 sessions 파일로 저장하는 부분을 할 때
            sessions파일에 정보.json 파일도 생기고 하는데
            로그인을 하면 계속 welcome만 뜹니다~ 세션이 유지가 안되는건가 싶기도하고 그대로 따라했는데 말이죠~!
            그리고 그 sessions 폴더에 파일에도 변화가 없습니다. 지우고 다시해도 똑같고 그렇습니다 ㅜㅜ 왜그러는걸까요?
            mysql에서 알려주신 req.session.save(function{}) 방법도 써봤지만 로그인이 되질않네요 ㅠㅠ
            mysql에 저장하는 것은 되는데 왜 유독 파일 저장형태만 이러는 것일까요? ㅜㅜ
          • egoing
            우선 session이 남겨진 것을 바로 삭제할 필요가 없고요. 정기적으로 오래된 세션을 삭제해주시면 됩니다. 그런데 대체로 세션 라이브러리들이 이런 기능을 내장하고 있기 때문에 자동으로 처리되는 경우가 많습니다.

            두번째 케이스는 제가 지금 재현 상황을 갖추지 못해서 다른 분에게 일단 답변을 넘겨보겠습니다. ㅠㅠ
            대화보기
            • 폭풍감자
              파일부분강좌에서 잠시 보여주셨던 브라우저에서 강제로 session을 삭제했을때에 이슈를 한개 발견했습니다.

              위 상황에서 서버의 sessions 폴더에는 기존에 남겨뒀었던 Session Key값이 남겨져 있었습니다.
              해당 값은 쓰레기 값일 것 같은데요. 해당 키 값을 정리하는 방법이 있을까요?

              덩달아 확인해본 결과 서버의 Key값을 삭제하고 서버를 재 부팅 했을때
              클라이언트에서 가지고 있는 sid값이 존재하지 않아서 다시 로그인을 시도하였으나 로그인이 되지 않는 현상이 있습니다. 사용자가 서버요청이 왔을때 존재하지 않는 쿠키일 경우 이를 삭제해주는 코드가 들어가야 하는지요? 이래저래 해보고 싶은데 아직 감을 다 못 잡았네요.
            • ㅎㅎ
              mysql로 할때 그냥 설치하면 0.4.4 버전이 설치 되는데
              에러가 나더군요...
              설치할때 npm install express-mysql-session@1.0.0-rc.0 --save
              이렇게 하면 제대로 동작됩니다
            • 한아
              감사합니다!
              대화보기
              • 하이루
                노드제이에스에 최고봉인 채팅도 해주세요
              • egoing
                옙!
                대화보기
                • 한아
                  혹시 나중에는 passport 까지 해주시나요?
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기