본문으로 건너뛰기
버전: 0.68.0

계정 비밀번호 API

참고: 이 문서에 설명된 모든 API는 dta-wir-medi-api 애플리케이션에 구현되어 있습니다. (Go)

논의 사항

  • PATCH accounts/password/reset: dta-wi-medi-api에 구현되어 있음 (reqeust 다름)
  • accounts/password/reset/security: dta-wi-medi-api에 구현되어 있음 (request 다름)

dta-wi-medi-api 에 있는 로직으로 통일시킬 것인지?

개요

계정 비밀번호 API는 MD(의료진) 계정의 비밀번호 관리 기능을 제공합니다.

[클라이언트 수정 필요]

API 경로에 /auth 경로가 추가됩니다.

경로 변경:

  • asis: /v1/accounts/password/~
  • tobe: /v1/auth/accounts/password/~

주요기능

  • 보안 코드 발송: 비밀번호 재설정을 위한 보안 코드 이메일 발송
  • 보안 코드 검증: 발송된 보안 코드 검증 및 토큰 발급
  • 보안 코드를 통한 비밀번호 재설정: 검증된 토큰으로 비밀번호 재설정
  • 비밀번호 재설정 (관리자용): 발급받은 토큰을 사용하여 새로운 비밀번호로 변경
[POST] /v1/accounts/password/reset/security-code/send - 보안 코드 발송

보안 코드 발송

비밀번호 재설정을 위한 보안 코드를 이메일로 발송합니다.

[클라이언트 수정 필요]
asis: /v1/accounts/password/reset/security-code/send
tobe: /v1/auth/accounts/password/reset/security-code/send

  • HTTP Method: POST
  • 인증: 액세스 토큰 필요 없음

Headers

HeaderTypeDescriptionRequired
Content-Typeapplication/json요청 본문 형식

Request Body

필드타입설명Required
emailstringMD 이메일

Request Body 예시

{
"email": "doctor@weltcorp.com"
}

Responses

Http Status Code설명Error Code(s)
200 OK보안 코드 발송 성공-
400 Bad Request잘못된 요청BAD_REQUEST (40000)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "유효하지 않은 계정 정보입니다."
}

이메일에 해당하는 계정이 존재하지 않을 때 발생합니다.

500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/accounts/password/reset/security-code/verify - 보안 코드 검증

보안 코드 검증

발송된 보안 코드를 검증하고, 검증 성공 시 비밀번호 재설정에 사용할 수 있는 토큰을 발급합니다.

[클라이언트 수정 필요]
asis: /v1/accounts/password/reset/security-code/verify
tobe: /v1/auth/accounts/password/reset/security-code/verify

  • HTTP Method: POST
  • 인증: 액세스 토큰 필요 없음

Headers

HeaderTypeDescriptionRequired
Content-Typeapplication/json요청 본문 형식

Request Body

필드타입설명Required
emailstringMD 이메일
securityCodestring보안 코드

Request Body 예시

{
"email": "doctor@weltcorp.com",
"securityCode": "123456"
}

Responses

Http Status Code설명Error Code(s)
200 OK보안 코드 검증 성공-
400 Bad Request잘못된 보안 코드BAD_REQUEST (40000)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
필드타입설명
tokenstring비밀번호 재설정에 사용할 일회용 토큰 (30분 유효)
400 Bad Request - 잘못된 보안 코드
{
"status": 400,
"code": 40000,
"message": "유효하지 않은 정보입니다."
}

발생 가능한 경우:

  • 보안 코드가 유효하지 않거나 만료된 경우
  • 이메일과 보안 코드가 일치하지 않는 경우
  • 해당 계정이 존재하지 않는 경우
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/accounts/password/reset/security-code - 보안 코드를 통한 비밀번호 재설정

보안 코드를 통한 비밀번호 재설정

보안 코드 검증 후 발급받은 토큰을 사용하여 비밀번호를 재설정합니다.

[클라이언트 수정 필요]
asis: /v1/accounts/password/reset/security-code
tobe: /v1/auth/accounts/password/reset/security-code

  • HTTP Method: POST
  • 인증: 보안 코드 검증 시 발급받은 토큰 필요

Headers

HeaderTypeDescriptionRequired
Content-Typeapplication/json요청 본문 형식

Request Body

필드타입설명Required
newPasswordstring새 비밀번호
tokenstring보안 코드 검증 시 발급받은 토큰

Request Body 예시

{
"newPassword": "newPassword123!",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Responses

Http Status Code설명Error Code(s)
200 OK비밀번호 재설정 성공-
400 Bad Request잘못된 요청 또는 토큰 만료BAD_REQUEST (40000)
401 Unauthorized인증 실패 (유효하지 않은 토큰)UNAUTHORIZED (40100), TOKEN_EXPIRED (40101), INVALID_TOKEN (40102)
500 Internal Server Error서버 내부 오류INTERNAL_SERVER_ERROR (50000)
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean성공 여부 (true)
400 Bad Request - 잘못된 요청
{
"status": 400,
"code": 40000,
"message": "비밀번호는 10~20자리여야 합니다."
}

발생 가능한 에러 메시지:

  • "비밀번호는 10~20자리여야 합니다." - 비밀번호 길이 규칙 위반
  • "비밀번호는 숫자/문자/특수문자 중 2가지 이상을 포함해야 합니다." - 비밀번호 복잡도 규칙 위반
  • "기존 비밀번호와 동일합니다." - 새 비밀번호가 기존 비밀번호와 동일
  • "유효하지 않은 계정 정보입니다." - 토큰의 계정 정보가 유효하지 않음
401 Unauthorized - 인증 실패

토큰 만료:

{
"status": 401,
"code": 40101,
"message": "TOKEN_EXPIRED"
}

토큰이 만료되었을 때 발생합니다. (토큰 유효기간: 30분)

유효하지 않은 토큰:

{
"status": 401,
"code": 40102,
"message": "INVALID_TOKEN"
}

토큰 형식이 올바르지 않거나 위조된 토큰일 때 발생합니다.

일반 인증 실패:

{
"status": 401,
"code": 40100,
"message": "UNAUTHORIZED"
}
500 Internal Server Error - 서버 내부 오류
{
"status": 500,
"code": 50000,
"message": "INTERNAL_SERVER_ERROR"
}
[POST] /v1/accounts/password/reset - 비밀번호 재설정 (관리자용)

비밀번호 재설정 (관리자용)

참고: 이 API는 dta-wi-mono 모노레포의 dta-wi-medi-api 애플리케이션에 구현되어 있습니다.

발급받은 토큰을 사용하여 계정의 비밀번호를 새로운 비밀번호로 변경합니다.

[클라이언트 수정 필요]
asis: PATCH /v1/accounts/password/reset
tobe: POST /v1/accounts/password/reset

  • HTTP Method: POST
  • 인증: 액세스 토큰 (accessToken) 필요

Headers

HeaderTypeDescriptionRequired
AuthorizationBearer {accessToken}사용자 인증을 통해 발급받은 액세스 토큰 입니다.
Content-Typeapplication/json요청 본문 형식

Request Body

필드타입설명Required
tokenstring비밀번호 재설정 토큰
newPasswordstring새로운 비밀번호

Request Body 예시

{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"newPassword": "newpassword123"
}

Responses

Http Status Code설명Error Code(s)
200 OK재설정 성공-
401 Unauthorized인증 실패1080
500 Internal Server Error서버 내부 오류1092
200 OK - 성공
{
"success": true
}
필드타입설명
successboolean비밀번호 재설정 성공 여부
401 Unauthorized - 인증 실패
{
"status": 401,
"code": 1080,
"message": "UNAUTHORIZED",
"detail": "{\"displayText\":\"No token found in Authorization header\"}"
}