|
12 | 12 | from bbs.social import SocialAuthService
|
13 | 13 | from core.database import db_session
|
14 | 14 | from core.models import Member
|
| 15 | +from lib.pbkdf2 import validate_password |
15 | 16 | from lib.mail import send_password_reset_mail, send_register_admin_mail, send_register_mail
|
16 | 17 |
|
17 | 18 | from api.v1.dependencies.member import (
|
@@ -151,6 +152,24 @@ async def read_member_me(
|
151 | 152 | return member
|
152 | 153 |
|
153 | 154 |
|
| 155 | +@router.post("/members/password_certification", |
| 156 | + summary="비밀번호 확인", |
| 157 | + responses={**response_401, **response_403, **response_422} |
| 158 | + ) |
| 159 | +async def password_certification( |
| 160 | + service: Annotated[MemberServiceAPI, Depends()], |
| 161 | + member: Annotated[Member, Depends(get_current_member)], |
| 162 | + password: Annotated[str, Body(..., title="비밀번호", description="비밀번호")], |
| 163 | +) -> MessageResponse: |
| 164 | + """ |
| 165 | + JWT토큰으로 decoding하여 얻은 member와 입력받은 비밀번호의 일치 여부를 확인합니다. |
| 166 | + """ |
| 167 | + if not validate_password(password, member.mb_password): |
| 168 | + service.raise_exception(status_code=403, detail="비밀번호가 일치하지 않습니다.") |
| 169 | + |
| 170 | + return {"message": "비밀번호가 확인되었습니다."} |
| 171 | + |
| 172 | + |
154 | 173 | @router.get("/members/{mb_id}",
|
155 | 174 | summary="회원 정보 조회",
|
156 | 175 | responses={**response_401, **response_403, **response_404})
|
|
0 commit comments