코딩캠프/AI 웹개발 취업캠프

[AI 웹개발 취업캠프] 73Day - 프로젝트 24일차

고랑E 2023. 11. 2. 23:05
728x90

오늘은 처음에 만들었던 회원가입 기능을 조금 보완해보자

 

main.py

 

# 기존 코드
@app.post("/signup")
def signup(user: UserCreate, db: Session = Depends(get_db)):
    create_user(db, user)
    return JSONResponse(content={"message": "회원가입이 완료되었습니다."}, status_code=201)
    
# 변경 코드
@app.post("/signup")
def signup(user: UserCreate, db: Session = Depends(get_db)):
    created_user = create_user(db, user)
    if created_user is not False:
        return JSONResponse(content={"message": "회원가입이 완료되었습니다."}, status_code=201)
    else:
        return JSONResponse(content={"message": "이메일 인증이 완료되지 않았습니다."}, status_code=401)

 

처럼 바꿔서 이메일 인증이 안됐을때를 걸러보자

 

 

crud.py

 

# 이전 코드
def create_user(db: Session, user: UserCreate):
    hashed_password = bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
    db_user = User(
        email=user.email,
        password=hashed_password,
        nickname=user.nickname
    )
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user
    
# 변경 코드
def create_user(db: Session, user: UserCreate):
    find_email_auth = db.query(EmailAuth).filter(EmailAuth.email == user.email).first()
    if find_email_auth.status == True:
        hashed_password = bcrypt.hashpw(user.password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
        db_user = User(
            email=user.email,
            password=hashed_password,
            nickname=user.nickname
        )
        db.add(db_user)
        db.commit()
        db.refresh(db_user)
        return db_user
    else:
        return False

 

이메일 인증 되었을때는 db에 저장을 해주고 안됐을때는 리턴으로 False 를 던져주자

 

 

 

본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.