오늘은 처음에 만들었던 회원가입 기능을 조금 보완해보자 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 JSONRes..
전체 글
오늘 할일 이메일 인증코드 체크 해서 상태값 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를 정의해..
어제 만들었던 이메일 발송 코드에서 빠진게 있어서.. 수정하려고 한다. 한주가 바껴서 다시 k-mooc 강의 까지 들어야되서.. 바쁘다..플젝도 해야되는데 강의도 들어야해.. email_auths 테이블의 email 컬럼에 unique key가 빠졌다.. models, alembic 파일 수정을 해준다. models.py email 부분에 unique=True 를 추가해준다. class EmailAuth(Base): __tablename__ = "email_auths" id = Column(BigInteger, primary_key=True, index=True) email = Column(String(255), unique=True) code = Column(String(8)) 저번에 작성했던 migr..
멀티 팩터 인증(MFA)에 대한 AWS 공식 문서 https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html?icmpid=docs_iam_console#enable-virt-mfa-for-own-iam-user 가상 멀티 팩터 인증(MFA) 디바이스 활성화(콘솔) - AWS Identity and Access Management 코드를 생성한 후 즉시 요청을 제출하세요. 코드를 생성한 후 너무 오래 기다렸다 요청을 제출할 경우 MFA 디바이스가 사용자와 연결은 되지만 MFA 디바이스가 동기화되지 않습니다. 이는 시간 기 docs.aws.amazon.com 간단하게 말하자면 음.. 게임 로그인 했을..
인증을 어떻게 처리할 것인가에 대해서 의견을 정하기위해 미뤄놨던 이메일 인증을 구현해보려고 한다. Gmail의 SMTP(Simple Mail Transfer Protocol)를 이용해 이메일을 발송할거다. 우선 Gmail SMTP 설정 단계 IMAP 사용 2단계 인증 앱 비밀번호 Gmail SMTP 설정 IMAP 사용 메일로 들어간다 https://mail.google.com/mail/u/1 Gmail 이메일 또는 휴대전화 accounts.google.com 우측 상단 설정 > 모든 설정 보기 를 눌러준다. 전달 및 POP/IMAP로 들어가준다. 왼쪽에 있던 사진을 오른쪽 사진처럼 IMAP 사용을 한다. IMAP 사용, 자동 삭제 사용, IMAP 메일 수 제한하지 않음 후 변경사항 저장 IMAP 사용 빼..
이제 이미지 로컬 저장 -> s3 저장으로 바꿔보자 어제 물어본 내용 오늘 회의때 해제 해줬다고 확인해 달라고 한다, 그래서 시작!! AWS S3 세팅 IAM 계정으로 로그인 로그인 후 화면 S3로 들어간다. 버킷 만들기 일반 구성 버킷 이름을 pid-bucket 으로 해주고 지역을 서울로 한다. 객체 소유권 ACL 비활성화 이 버킷의 퍼블릭 액세스 차단 설정 일단은 생성할때 차단으로 설정한다.. 어짜피 수정해야됨 버킷 버전 관리 비활성화 태그 다음으로 패스 기본 암호화 Amazon S3 관리형 키(SSE-S3) 고급 설정 객체 잠금 - 비활성화 응 안돼!~ 그냥 내 aws 계정으로 테스트 버킷을 생성했다. 버킷 이름만 pid-bucket-test 로 해서 나머지는 동일하게 생성 했다. 사용자 그룹 생성..
오늘은 이미지 업로드 기능을 구현 해보자 fastapi 공식문서에 나와있는 것 처럼 https://fastapi.tiangolo.com/tutorial/request-files/ 일단 python-multipart 를 설치한다. pip install python-multipart main.py 상단 fastapi에 File, UploadFile 를 임포트 한다. from fastapi import FastAPI, Depends, HTTPException, File, UploadFile @app.put("/users/{userId}/img") async def update_user_image(userId: int, file: UploadFile, db: Session = Depends(get_db)): r..
소개 윈도우 기준으로 작성 마인크래프트 자바에디션(JE)는 기본적으로 Java라는 언어로 만들어졌다. 구동을 위해서는 Java가 설치가 필수입니다. 마인크래프트 버전에 따라 자바의 버전도 다르게 설치해야 된다. 일반 서버(spigot, paper 등등) 1.18 ~ Java 17 1.16.5 ~ 1.17.1 Java 16 1.13 ~ Java 11 ~ 1.12.2 Java 8 모드 서버(forge) 1.18 ~ Java 17 1.17 ~ Java 16 ~ 1.16.5 Java 8 다운로드 링크 Java SE Development Kit 에서 OS에 맞게 설치하면 된다. Java 8 https://www.oracle.com/java/technologies/javase/javase8u211-later-arc..
모델 생성 모델 생성 할때 받을 데이터 정의 해주고 schemas.py class ModelCreate(BaseModel): userId: int title: str private: bool file: str description: str main.py # 상단에 create_model 및 ModelCreate 추가 from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info, get_models, get_my_models, create_model from BE.schemas import UserCreate, UserLogin, UserUpdate, ModelCreate @app.post("/model..
개인 모델 리스트 가져오기 main.py # get_my_models 추가 from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info, get_models, get_my_models @app.get("/my-models/{userId}") def read_my_models(userId: int, db: Session = Depends(get_db)): my_models_in_db = get_my_models(db, userId) return my_models_in_db crud.py def get_my_models(db: Session, userId: int): return db.query(Model..
오늘은 오전,후 에 일정이 있어서 너무 늦게 개발시작한 탓에 전체 모델 리스트을 조회 하는 기능을 만드는데 일단 조회만 가능하게 코드를 추가하고 나중에 상황에 맞게 수정해야겠다.. main.py # 상단 get_models 추가 from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info, get_models /models, get으로 요청했을때 모델 테이블을 조회할 수 있게 해준다. @app.get("/models") def read_models(db: Session = Depends(get_db)): models_in_db = get_models(db) return models_in_db crud...
오늘은 정보 수정을 해야겠다 정보 수정할 모든 데이터는 닉네임, 패스워드이고 이 2개만 하면되서 비교적으로 간단한거같다..아마두 ㅋㅋ main.py #상단 부분에 update_user_info from BE.crud import create_user, get_user, verify_password, get_user_info, update_user_info @app.patch("/users/{userId}") def update_user(userId: int, db: Session = Depends(get_db)): update_user_info(db, userId) return JSONResponse(content={"message": "정보가 수정되었습니다."}, status_code=200) crud..