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

home2 게시판 Node.js, Express 게시판 MongoClient 와 mongoose

MongoClient 와 mongoose

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

    익명
    비활성

    선생님 

    MongoClient 와 mongoose랑 같이 쓸수도있나요?

     

    회원가입이나 , 로그인할때는 Schema를 쓰고싶은데

     

    따른 crud 기능은 MongoClien 문법이 편해서요

    #15621

    codingapple
    키 마스터

    그럴 순 없습니다 mongoose 쓰면 계속 그 문법으로 써야할걸요 

    #15626

    익명
    비활성

    선생님 그러면

    react로 client에서  axios로 로그인 요청하고

    passport로 로그인처리하고 세션정보를 저장할떄

    로그인 성공하자마자 client로 세션정보를 넘겨줄방법없을까요?

     

    app.post('/login', passport.authenticate('local', {failureRedirect : '/fail'}), function(요청, 응답){
        
    });
    passport.use(new LocalStrategy({
    usernameField: 'username', //client에서 보내준 id,pw명
    passwordField: 'password',
    session: true,
    passReqToCallback: false,
    }, function (입력한아이디, 입력한비번, done) { // 보내준 id,pw가 db정보와 일치하는지 검증

    db.collection('user').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) //user.id정보로 세션을만듬
    });

    passport.deserializeUser(function (아이디, done) { //마이페이지같은거 접속할때 발생(이 세션정보가진사람을 db에서 찾아주세요)
    done(null, {})
    });

    server 부분

     

    ============================================================

    const loginHandler = async(e)=>{
    try{
    e.preventDefault();
    const result = await axios.post("http://localhost:5000/login" , { username , password })
    history.push("/")
    }
    catch(err){
    console.log(err)
    }
    }

    <form onSubmit={loginHandler}>
    <CustomInput label="ID" value={username} setValue={setUserName}/>
    <CustomInput label="비밀번호" type="password" value={password} setValue={setPassword}/>
    <button type="submit">로그인</button>
    </form>

     

    client부분

    입니다

    #15631

    codingapple
    키 마스터

    세션정보는 로그인시 브라우저 쿠키란에 자동으로 저장됩니다 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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