728x90
오늘 할일 이메일 인증코드 체크 해서 상태값 true로 만들어주는거..
생각해보니 email_auths 테이블에 status 컬럼을 안만들어 줬다..
기본은 false로 해주고 만들어준다.
alembic 마이그레이션 파일에
sa.Column('status', sa.Boolean, nullable=False, server_default='false'),
추가 해주고 models.py 에도 추가해준다..
status = Column(Boolean, default=False)
다운그레이드 하고 다시 올린다.
# 바로 전 마이그레이션 다운그레이드
alembic downgrade -1
# 최신까지 마이그레이션
alembic upgrade head
schemas.py 에 요청으로 받을 email, code를 정의해주고
class EmailAuthCheck(BaseModel):
email: str
code: str
main.py 위쪽에 가져올걸 임포트하고 api 로 /email/check 만들어준다.
# check_email_code 추가
from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info, get_models, get_my_models, create_model, get_model, email_code, check_email_code
# EmailAuthCheck 추가
from BE.schemas import UserCreate, UserLogin, UserUpdate, ModelCreate, EmailSend, EmailAuthCheck
맞았을때 200, 틀렸을때 401 상태코드로 보내준다.
@app.post("/email/check")
def check_email_auth(email_auth: EmailAuthCheck, db: Session = Depends(get_db)):
if check_email_code(db, email_auth):
return JSONResponse(status_code=200, content={"message": "인증코드가 맞습니다."})
else:
return JSONResponse(status_code=401, content={"message": "인증코드가 틀렸습니다."})
crup.py 에 check_email_code 함수를 만들어준다.
def check_email_code(db: Session, email_auth: EmailAuthCheck):
db_email_code = db.query(EmailAuth).filter(EmailAuth.email == email_auth.email).first()
if db_email_code and db_email_code.code == email_auth.code:
db_email_code.status = True
db.commit()
return True
return False
테스트를 해보면
잘 바뀐다!!!
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 74Day - 프로젝트 25일차 (0) | 2023.11.04 |
---|---|
[AI 웹개발 취업캠프] 73Day - 프로젝트 24일차 (0) | 2023.11.02 |
[AI 웹개발 취업캠프] 71Day - 프로젝트 22일차 (0) | 2023.10.31 |
[AI 웹개발 취업캠프] 70Day - 프로젝트 21일차 (0) | 2023.10.30 |
[AI 웹개발 취업캠프] 69Day - 프로젝트 20일차 (0) | 2023.10.27 |