• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 로그인 기능 질문 ( _id가 1인 계정만 접속할수있게해주세요)

로그인 기능 질문 ( _id가 1인 계정만 접속할수있게해주세요)

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #69352

    이창민
    참가자
    안녕하세요 항상 도움이 많이되고있습니당
    
    오늘은 관리자 페이지에 대해 질문드립니다
    유저가 로그인해야 접속가능한 마이페이지는 구현이 된 상태인데
    관리자 페이지도 만들고싶어서 질문드립니다.
    
    예를들어 admin.ejs페이지는 user-login이라는 콜렉션에서 _id가 1인 계정만 접속할수있게 해주세요
    코드를 짜려면 어떻게 해야되는지 질문드립니다 ㅠㅠ
    
    
    
    //로그인 페이지
    app.get("/login", function (req, res) {
      res.render("login.ejs");
    });
    app.post(
      "/login",
      passport.authenticate("local", { failureRedirect: "/fail" }),
      function (req, res) {
        res.redirect("/index-login");
      }
    );
    app.get("/fail", function (req, res) {
      res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
      res.write("<script>alert('id/pw가 일치하지 않습니다. ')</script>");
      res.write('<script>window.location="login"</script>');
    });
    app.get("/index-login", function (req, res) {
      res.render("index-login.ejs");
    });
    //로그인에 필요함 (로컬스트러지 인증방식)
    passport.use(
      new LocalStrategy(
        {
          usernameField: "id",
          passwordField: "pw",
          session: true,
          passReqToCallback: false,
        },
        function (입력한아이디, 입력한비번, done) {
          //console.log(입력한아이디, 입력한비번);
          db.collection("user-login").findOne(
            { id: 입력한아이디 },
            function (에러, 결과) {
              if (에러) return done(에러);
              if (!결과)
                return done(null, false, { message: "존재하지않는 아이디입니다" });
              if (입력한비번 == 결과.pw) {
                return done(null, 결과);
              } else {
                return done(null, false, { message: "비번 확인해주세요" });
              }
            }
          );
        }
      )
    );
    passport.serializeUser(function (user, done) {
      done(null, user.id);
    });
    passport.deserializeUser(function (아이디, done) {
      db.collection("user-login").findOne({ id: 아이디 }, function (에러, 결과) {
        done(null, 결과);
      });
    });
    function 로그인했니(req, res, next) {
      if (req.user) {
        next();
      } else {
        res.redirect("/login");
      }
    }
    #69415

    codingapple
    키 마스터
    admin.ejs 페이지 보내주기 전에 if문으로 로그인된 유저정보 검사해본 다음에 보내줍시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠