TIL

회원가입 기능 만들기.

Big Iron 2023. 2. 9. 00:37

오늘은 회원가입 기능을 만들었다.

단순히 정보를 입력하고 db에 저장하는 것은 쉬웠다. 하지만 입력 id가 db에 저장된 값인지 판단하는데 시간이 걸렸으나 결국 완성했다.

 

내가 생각한 방법은 id, pw, 이름, 연락처를 받아오고 그 값이 저장된 db에서 중복된 값인지 판단 후 가입 되는 것이었다.

function createMember() {
        let userId = $('#userId').val()
        let userPw = $('#userPw').val()
        let userName = $('#userName').val()
        let userPhone = $('#userPhone').val()

        $.ajax({
            type: 'POST',
            url: '/join',
            data: {userId_give: userId, userPw_give: userPw, userName_give: userName, userPhone_give: userPhone},
            success: function (response) {
                // console.log(id)
                alert(response['msg'])
                if (response['msg'] == '회원가입 완료.') {
                    window.location.href = '/login'
                }
            }
        });
    }

먼저 클라이언트가 입력하는 값들을 변수로 저장하고 ajax를 통해 서버로 보내줬다.

 

@app.route("/join", methods=["POST"])
def join_post():
    userId_receive = request.form['userId_give']
    userPw_receive = request.form['userPw_give']
    userName_receive = request.form['userName_give']
    userPhone_receive = request.form['userPhone_give']

    userId_list = list(db.member.find({}, {'_id': False}))

    if userId_receive == '' or userPw_receive == '' or userName_receive == '' or userPhone_receive == '':
        return jsonify({'msg': '정보를 입력하세요.'})
    elif userId_receive != '' and userPw_receive != '' and userName_receive != '' and userPhone_receive != '':
        doc = {
            'userId': userId_receive,
            'userPw': userPw_receive,
            'userName': userName_receive,
            'userPhone': userPhone_receive,
        }
        db.member.insert_one(doc)

        userId_str = str(userId_receive)
        for i in userId_list:
            if i['userId'] == userId_str:
                return jsonify({'msg': '중복된 id 입니다.'})
        return jsonify({'msg': '회원가입 완료.'})

서버에서는 클라이언트가 보낸 값을 receive로 받아 db에 저장했다.

그리고 가입하는 id가 db에 저장된 값인지 판단을 해주었고 클라이언트로 다시 결과를 보내 코드를 완성했다.

 

코드를 완성하고 조금은 허탈한 기분이 들었지만 방법을 생각해보고 하나하나 시도를 했던 것이 완성하는데 가장 큰 도움이 되준 것 같다.

'TIL' 카테고리의 다른 글

해커톤 프로젝트 경험  (0) 2023.02.12
github 기본적인 기능.  (0) 2023.02.10
검색기능 만들기.  (0) 2023.02.10
협업 그리고 깃…  (0) 2023.02.08
토이 프로젝트의 시작  (0) 2023.02.06