Server Side JavaScript

Passportjs

Passport Introduction(패스포트 소개)

 Configuration(설정)

Route

Serialize

logout(로그아웃)

review ( 복습) 

댓글

댓글 본문
작성자
비밀번호
  1. 이제한달
    저도 로그아웃이 안 되는 현상이 있었는데 github 에서 코드 보면서 라우터 위치를 바꿔주니까 제대로 동작하네요
  2. djsroom
    감사해요.
    저도 한참을 고민하다가 댓글보고 해결했네요.
    대화보기
    • 으허
      호동님. github에서 egoing님을 찾으면 소스 확인하실 수 있습니다.
    • 호동
      강의를 들으며 따라 하는데요. 일단 코드를 적고 실행해 보는데 로그인 과정에서 로그인 이후 로그아웃 화면이 출력되지 않는데 어디가 문제인지 모르겠어서 본 과정의 소스와 비교해 보려고 하는데 소스가 따로 없어 비교해 볼 수 가 없네요. 본 과정의 소스를 공유해주시면 감사하겠습니다.
    • 초초초초보
      for(var i=0; i<users.length; i++){
      var xx = users[i];
      console.log(users[i].username);
      if(xx.username === id) {
      console.log('aaa');
      return done(null, xx);
      }
      }
      return done(null, false);
    • 초초초초보
      미쳐미쳐님..
      일단, 계속 돌아가는 부분은.. deserializeUser 의 마지막 부분. for 문 후에.. return done(null, false); 이런식으로 return 값을 주니깐 해결이 되던데요..
      대화보기
      • 미쳐미쳐
        마지막 Register해서 아이디 맘대루 해서 등록 하고 나니까 실행 할때마다
        3003 connected!!
        Deserialize 12adf(제가 등록한 아이디)
        만 계속 나오고 웹페이지 접속이 안되네요.. 계속 로딩만...
        후.. 뭐가 문젠지 모르겠네요 ㅠㅠ
      • Hello World
        세번 다시 보니까 이해되네요

        passport.serializeUser는 처음 client가 web page에 접속 하여 로그인을 하는 경우 session에 값을 등록해주는

        기능을 가지고 있습니다. 인자로 전달받은 user 객체의 정보를 이용하여 done의 두번쨰 인자로 user.username

        을 session에 값으로 등록해주는 과정입니다. client가 다른 페이지나 현재 페이지를 reload 하는 경우

        passport.deserializeUser는 인자로 전달받은 user.username 즉, 현재 session에 등록된 값을 이용하여

        기존에 저장된 데이터와 일치하는 정보를 찾은 후 done의 두번째 인자로 user의 정보를 담은 객체인 user를

        전달합니다.


        휴...nodejs 강의 들으면서 제일 어려웠던 부분이네요ㅠㅠ
      • 디미몬
        댓글 못 보고 저도 한참 헤매고 있었네요 ㅠㅠ

        유용한 정보 감사드립니다 !!
        대화보기
        • 감자폭풍
          강의듣고 따라하던 도중에 하루 넘게 삽질을 한 사항이 있어서 공유할까 합니다.

          이슈사항
          deserializeUser 가 호출이 되지 않는 현상이 발생

          원인
          loging을 하였는데 Session안에 passport객체가 존재하지 않음.
          확인결과 session정보에 passport 객체가 저장되어 있지 않으면 deserializeUser는 호출되지 않음.

          해결방안
          passport.authenticate( 'local', {
          //successRedirect: '/welcome', // 해당 코드를 주석으로 처리하면 아래의 fuction이 호출됨
          failureRedirect: '/auth/login', failureFlash: false }
          ),
          function(req, res) { // 해당 function이 호출되고 나서 session을 save해주는 로직을 해주고 처리함.
          req.session.save(function(){
          res.redirect('/welcome');
          });
          }

          좋은 하루되세요~~
        • egoing
          죄송합니다 ㅠㅠ
          대화보기
          • 한아
            정말 어렵군요 ㅠㅠ
          • egoing
            아이고 저 같은 못난이 강사에 대해서 이렇게 후하게 평가해주셔서 너무 감사합니다. 지금은 타사 인증 강의 만들다가 잠시 쉬고 있었는데 힘나는 글이 눈 앞에 따악! 이래서 멈출수가 없어요 ㅎㅎ
            대화보기
            • Marmot
              매번 너무 감사드립니다 ^^

              잘하는 사람의 맹점은 못하는 사람이 무엇을 모르는지 모르는 것 아닐까 싶습니다

              때문에 못하는 사람의 입장을 고려하지 않은 난해한 설명만 잔뜩 접하다보니

              마치 어지러운 바둑판을 초심자가 보는 것 같은 아득함만 있었는데


              모르는 사람이 뭘 모르는지 정확히 아시고 하나하나 짚어주시는 분을 뵈니

              이렇게 고마울 수가 없네요..

              더군다가 쉽게 알려주시는 분도 많은 경우 아예 모른다고 가정하고

              지나치게 기초적인 것만 알려주다보니 직접 그걸 가지고 뭘 할수가 없었는데

              차근차근 단계를 밟아 실제 뭘 만들 수 있게끔까지 해 주시니..


              속이 다 후련해 지는게 요즘 절이라도 드리고 싶습니다 ㅠㅠ
            버전 관리
            egoing
            현재 버전
            선택 버전
            graphittie 자세히 보기