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

home2 게시판 Node.js, Express 게시판 회원가입 기능구현

회원가입 기능구현

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

    김민성
    참가자

    회원가입을 할때 '이미 존재하는 아이디입니다." 또는 "회원가입이 완료되었습니다" 라는 문장을 컴포넌트에 보여주고싶은데

    어떻게 접근하면 좋을까요. app.post 안에서 한꺼번에 처리하는 건가요? 아니면 회원가입 버튼에 onclick에 ajax를 요청하는건가요?

    #6016

    codingapple
    키 마스터

    개발하는 방법은 개발자 맘입니다 

    회원가입 버튼누르면 아마도 ajax post 요청을 해서 아이디 비번을 보내겠죠 

    그럼 서버는 아이디를 DB에서 한번 찾아보고 1. 이미 존재하면 안된다고 2. 그게 아니면 가입시켜주고 잘되었다고

    고객에게 메세지를 보내주면 됩니다. 

    리액트는 서버에서 도착한 메세지가 뭔지에 따라서 뭘 보여줄지 코드짜면 되겠네요 

    #6017

    김민성
    참가자

    지금 post 요청을 폼태그로 했는데요.. 회원가입 기능은 잘 구현했어요. 근데 폼태그에서 post 요청을 하다보니깐 서버에서 잘 처리를하던 못하던 그 상태를 어떻게 리액트에서 받을 수 있는지... 그 방법을 모르겠어요. 서버랑 리액트랑 어떻게 변수를 주고받죠?

    #6018

    김민성
    참가자

    app.post('/register', function(req,res){
         db.collection('user').findOne({user_id: req.body.id}, function(err,result){
             if(result) res.send("이미 존재하는 아이디입니다.")
    else{
        db.collection('user').insertOne({user_id: req.body.id, user_password: req.body.password}, function(err, result){
        console.log("회원가입 완료");
     })
    }
    })
    이 상태인데 res.send로 메세지를 보여주는게 아니라 회원가입 페이지에서 alert 컴포넌트를 만들어서 회원가입버튼을 누르자마자 결과를 보여주고싶어요 

    #6020

    김민성
    참가자

    하 해결했습니다. ㅠㅠ ㅋㅋㅋ axios로 form post 보내기 힘드네요... 변수는 res.send({보내고싶은 변수명:데이터})하면 되는군요 ..ㅎㅎ 

    #6023

    codingapple
    키 마스터

    리액트에선 post요청도 폼태그를쓰기보단 그냥 ajax로 합니다

    나중에 db에 비번저장할때 암호화해서저장하고

    나중에 로그인시 db에서 비번 찾을때도 암호화해서 비교하고 하는 기능을 추가하면 더 완벽해지겠군요

    #6062

    김민성
    참가자

    독학으로 crypto 랑 salt 까지 완벽하게 구현했습니다. 하 ㅜㅜ 이제 jwt 배워보려고요 세션이랑 passport는 머리아프고 또 요즘은 jwt가 대세라고 하더라고요? 뭐 각자 장단점이 있겠지만요

    다른 질문인데,  서버에서 redirect 시켜주고 싶은데 먹질 않더라고요 res.redirect('/')해서 홈으로 보내려고하는데 리액트 라우트를 써서 그런지 모르겠는데 다른 방법으로 해야하나요?

    #6064

    codingapple
    키 마스터

    서버에서 특정 메세지를 보내면 리액트에서 라우팅하라고하면 됩니다

    jwt도 똑같이 패스포트로 구현합니다

    근데 사용자 접속정보를 서버에 저장해두지 않는 jwt는 보안상 좋은방법은 아니라 refresh token 이라든지 그런 것도 찾아보시길 바랍니다. 

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

About

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

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

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