Server Side JavaScript

Multi user (다중 사용자)

intro(소개)

register(회원가입)

authentication(인증)

댓글

댓글 본문
작성자
비밀번호
  1. yooin14
    전역 배열 변수에 데이터는 브라우져를 새로 고치거나 다른 페이지로 가면 다시 초기화 되요. 유저 로긴여부는 Session Data 로 로긴 상태를 정하는거구요. 원래 전역 배열변수로 유저 가입을 저장하는게 아니에요. 하지만 이수업에 본래 목적은 egoing 님이 말한것처럼 복잡성을 우선 제외하고 로긴부분인 수업을 집중한거에요.
    대화보기
    • 초초초초보
      supervisor를 써서 그런것 같습니다(메모리 초기화? 이뤄짐).

      node로 바꾸면 배열 여러개 들어갑니다.
      대화보기
      • kimaro45
        저도 같은 문제가 있었는데

        var users = [
        {
        username:'egoing',
        password:'111',
        displayName:'Egoing'
        }
        ];

        이걸 변수 선언부(var app = express() 밑에 쯤)로 빼니 해결되네요.
        아마 로그아웃 되고 다시 등록되는 과정에서 users가 다시 생성되서 두 개까지만 들어간 것 같아요...
        대화보기
        • KS Hwang
          이번 강의 하다가 의문이 있어서요~
          2번 째 동영상을 따라하는데 users.push(user) 때문에 배열에 유저들이 저장되는 건 알겠는데, 왜 배열이 2개 이상 안 만들어 질까요?

          예를들어,

          [{"username":"egoing","password":"111","displayName":"Egoing"},{"username":"aaa3","password":"","displayName":"aaa3"}]

          까지 입력은 되는데, 또 register 하면
          [{"username":"egoing","password":"111","displayName":"Egoing"},{"username":"bbb","password":"bbb","displayName":"bbb"}]

          와 같이 2번째 것이 사라집니다 ... ㅠㅠ

          2번 째 계정으로 로긴도 안되구요..

          아마 뒤로가기 하면 배열에 저장이 안 되는것 같습니다

          어떻게 문제일까요??
        • 디미몬
          강의 잘보고 있습니다. 많은 도움이 되고 있어요.

          제가 이 강의 실습을 따라하면서 2가지 문제점이 발생했는데..
          1. 로그아웃부분에서
          delete req.session.displayname은 작동이 잘 안되네요
          req.session.destroy()를 사용해야 작동합니다. 왜 그런가요?

          2. register에서 데이터를 입력하고 전역 배열 변수에 데이터까지 들어가는데
          새로고침을 하면 코드에 작성해두었던 초기값으로 돌아갑니다 (마치 지역변수처럼)
          혹시 짐작가는 문제점 있을까요?
        • 폭풍감자
          egoing님 잼있는 강의 늘 감사합니다.
          강의 내용을 보면서 따라하다가 이러면 어떨까라는 생각이 드는 부분이 있어서 코멘트를 남기며 질문도 있습니다.

          강의 내용 중 아래의 코드 부분에 displayName를 삭제하고 save를 하는 식으로 logout을 진행하셨는데요.
          app.get('/auth/logout', function(req,res){
          delete req.session.displayName;
          req.session.save(function(){
          res.redirect('/welcome');
          });
          로그아웃시에는 session의 정보를 삭제하는 것이 옳지 않나 라는 들어서 찾아본 결과
          save 말고 delete라던가 regenerate등의 정보가 있더라구요.
          아래의 코드를 수행시키면 기존의 session 값은 사라지고 새로운 sesison 파일이 생성되며 displayname값도 사라지게 됩니다.
          req.session.regenerate(function(err){
          res.redirect('/welcome');
          });
          개인적인 생각으로는
          DB에서 변경(Update) 속도가 빠르다면 전체 값을 초기화 해주는 방법을 찾는게 좋을 것 같으나,
          삭제 생성의 속도도 문제가 되지 않는다면 session에 들어간 모든 값을 초기화 해주는 방법은 아무래도 재생성이 맞는 것 같기도 합니다.
          질문사항
          실제 상용 서버에서는 보통 해당 상황에서는 어떻게 진행하는지요?
          로그인에 관련된 특수한 정보만 지우고 나머지 세션값은 가지고 있는지요?

          단순히 naver를 확인해보니 로그인을 할 경우 cookie에 my.naver.com이라는 값이 새로 생기고 로그아웃의 경우 사라지고 있네요. 허허허 역시 상용서버는 많이 복잡복잡하네요.
        • 열혈수강생
          수업 정말 잘 듣고 있습니다!
          multiuser 수업의 코드를 올려주실순 없나요?ㅜㅜ
        • 많은 도움 감사해요
          찾는 부분은 콜백과 상관 없으므로
          불리언 변수 혹은 i 값 체크해서 처리하면 될 것 같습니다.

          var f = false; // 찾는 루틴 전에 선언.
          for (var i = 0; i < user.lenght; i++) {
          if (아이디, 패스워드가 일치하면) {
          f = true;
          ~~~
          }
          }
          // 밖에서
          if (!f) {
          res.send('who are you?~~~;
          }

          혹은 불리언 변수 선언 없이
          if (i == user.lengh) {
          res.send('who are you?~~~;
          }
          로 해도 되는 듯, 못찾으면 i값이 최종적으로 저 값이 되니까요.
          (이 경우 아이디,패스 찾는 for문의 경우 찾았으면 루프 탈출하는 break문을 추가해야 될것 같아요.)
        • 한아
          다음 영상은 언제나오나요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
        • 그린애플
          egoing님 감사합니다.
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기