WEB4 - Express-Session-Auth

express-session을 이용한 인증구현

수업소개 

express-session을 이용해서 로그인/로그아웃/접근제어 기능을 갖춘 웹애플리케이션을 제작하는 방법을 함께 살펴보겠습니다. 

 

 

 

강의1 - 로그인 링크 만들기

 

 

 

소스코드

변경사항

 

 

 

 

강의2 - 인증 기능 구현

 

 

 

소스코드

변경사항

 

 

 

강의3 - 세션 미들웨어 설치

 

 

소스코드

변경사항

 

 

 

강의4 - 인증 상태를 UI에 반영

 

 

소스코드

변경사항

 

 

 

강의5 -  인증 상태를 UI에 반영 2

 

 

 

소스코드

변경사항

 

 

 

강의6 - 로그아웃

 

 

소스코드

변경사항

 

 

 

 

강의7 - 접근제어

 

 

소스코드

변경사항

 

 

 

강의8 - 세션저장

 

 

 

소스코드

변경사항

댓글

댓글 본문
  1. enty
    감사합니다.
  2. 장한결
    한달 전이라 도움이 되실런지 모르겠지만..

    main.js 내에서 세션을 생성해주셔야 합니다. 3번 강의 1:10 부분에서 설명하시는 것을 잊으신 듯 합니다.

    main.js 내에서

    app.use(session({
    key: 'is_logined',
    secret: 'mysecret',
    resave: false,
    saveUninitialized: false
    store:new FileStore()
    }));

    app.use(session({
    key: 'nickname',
    secret: 'mysecret',
    resave: false,
    saveUninitialized: false
    store:new FileStore()
    }));

    해주시면 정상 동작합니다!
    대화보기
    • 한정수
      is_logined는 어디서 나온 변수인가요?
    • 케굴
      2022-01-04
      session이 저장 안 되서 한참 찾아 고쳤는데 마지막에 나오네요 ㅜㅠ
    • HyunseoLee
      저는 express-mysql-session을 사용해서 session을 저장했습니당~
      그 후 동기적으로 처리 했습니다 20210813 - OK
    • jeisyoon
      2021.03.21 Express-session 인증 구현 - OK
    • 생활둘기
      2021 1 6
    • Yong Hyun Lee
      완료
      201122
    • ldhan0715
      20-09-19
    • 전주호
      완료
    • 뚜루뚜루뚭
      감사합니다
    • 쑤우
      수강완료. 감사합니다~
    • 오지훈
      라우트 사용할 때 request.session이 undefined일 때 해결방법
      객체 생성이 안된것 같아서 한참 고민했네요
      [ main.js ]
      app.use(router)
      app.use(session(...));
      ...
      순서로 선언된 부분을

      app.use(session(...));
      app.use(router)
      ...
      순서로 선언해주세요
    • 강다리
      완료 좋은 강의입니다.
    • C# 개발자
      TypeError: Cannot set property 'is_logined' of undefined

      라고 뜨네요..
    • 굼벵이
      완료
    • DOTOLEE
      로그인 실패시 뒤로 가게 하기

      router.post('/login_process', function(request, response){
      var post = request.body;
      var email = post.email;
      var password = post.pwd;
      if(email === authData.email && password === authData.password){
      request.session.is_logined = true;
      request.session.todayIs = Date();
      request.session.nickname = authData.nickname;
      request.session.save(function(){
      response.redirect('/');
      });
      } else {
      response.redirect('./loginError');
      }
      });

      router.get('/loginError', function(request, response){
      var errorPage = `
      <html>
      <head>
      <meta http-equiv="refresh" content="3;url=/" />
      </head>
      <body>
      <h1>
      We can not found your email
      </h1>
      <br>
      <h1>
      or your password is not correct
      </h1>
      <br>
      <h2>
      go back page in 3 seconds~!!
      </h2>
      </body>
      </html>
      `;
      response.send(errorPage);
      });
    • 팽펑
      정 님이 가진 문제가 뭐냐면, respond.redirect("/") 의 다음줄에 return false 를 적어주지 않아서 그럴 확률이 높습니다. "해당 함수가 종료되게" 해주셔야 합니다.
    • leesj020925@naver.com
      강의 3 에서 문제가 생기신분들은 강의 8 을 보시면 해결됩니다! 저도 막혔는데 밑에분 댓글보고 확인하니 해결됐습니다.
    • 안녕하세요 강의 잘 보고 있습니다! 그런데 자꾸 로그인을 하면 EPERM: operation not permitted, rename...과 Can't set headers after they are sent. at validateHeader (_http_outgoing.js:491:11).....에러가 뜨면서 로그인이 잘 되질 않네요 ㅠㅠ 세션 저장소?에도 잘 입력되지 않구요 ㅠㅠ pm2보충수업에 나와있던 명령어를 사용해도 마찬가지입니다.... 인터넷도 찾아서 이것저것 해봤는데도 해결이 안되네요 ㅠㅠ 혹시 무슨 문제일까요...ㅠㅠ
    • 강혁
      강의 8번을 7번이랑 합쳐주시는것도 괜찮을거같아요.. 7번에서 로그인을했는데 계속 무한 로그인화면이 떠서... 1시간동안 인터넷뒤적이다 포기하고 강의 8번보니 바로해결되네요 ㅠ.ㅠ
    • jo_onc
      아주 재밌네요!
      혼자 삽질하다가, 강의를 참고하니 술술 풀리네요 하핳...
    • 삼고잉
      잘 읽었습니다
    • nomadlife
      강의 감사합니다. 근데 다 만들고 보니, 로그아웃시에 작동은 되는데, log창에 에러가 계속 떠서(ENOENT: no such file or directory, open ,,"쿠키파일명") 찾아보니, session destroy 콜백함수에다가 쿠키를 지우는 코드를 넣으라는 글이 있네요. (https://github.com......437) 이렇게 해주는게 원래 맞는건가요? 아님 저만 생기는 문제인지,,
    • Hyung Jun Choi
      6강에서, main에서는 logout이 잘 되는데, topic하위에서는 logout링크 클릭시 localhost/topic/auth/logout으로 가버려서 로그아웃이 정상적으로 동작하지 않네요..쩝
      그래서 auth.js의 statusUI함수에서, <a href="http://${req.hostname}:3000/auth/logout">logout</a>로 수정했습니다..
    • Hyung Jun Choi
      session_logined가 설정되는게 랜덤하네요. 세션파일 생성 한 뒤, 로그인 직후 세션에 정보를 저장하는 것보다 홈화면으로 리다이렉트 되는게 더 빨라서 로그아웃 링크가 안뜨네요.. 참고하시길
    • 정유정
      잘 듣고 있습니다
      강의3 다 듣고 로그인이 되지 않아서 애먹었는데.. 강의8에서 설명해주셨어요ㅠㅠ감사합니다
    • d