로그인 화면
이해하기
쇼핑몰 로그인 화면 및 로그인 시나리오에 대해 소개합니다.

🅐 일반회원 로그인

회원 가입 시 생성한 회원 정보 (아이디 / 패스워드)를 입력하는 화면입니다.

두 가지 회원 유형인 일반회원 로그인과 아래에서 소개할 간편회원 로그인은,
각각 로그인 로직이 상이하나 둘 다 공통적으로 accessToken을 획득 해야합니다.
- postaccessToken 발급
- /oauth/token
액세스 토큰(accessToken)을 발급합니다.
샵바이에서는 액세스 토큰(accessToken) 기반의 로그인 방식을 사용합니다.
사용자가 입력한 아이디와 비밀번호로 해당 API를 호출하여, 유효한 회원일 경우 accessToken을 획득합니다.
회원 엑세스 토큰의 기본 유효 기간은 12시간이며, 자동 로그인을 위해 keepLogin을 true로 요청하면 유효 기간이 90일인 토큰이 생성됩니다.
회원은 비밀번호 유효기간 90일이 지나면 비밀번호를 변경해야 합니다.
해당 API 응답 값 중 '휴면 회원 정보 dormantMemberResponse' 및 '비밀번호 변경 일로부터 경과 일 수 daysFromLastPasswordChange' 를 확인하여 아래 문서에서 소개 드릴 '휴면 회원 로직' 또는 '비밀번호 유효기간 90일 초과 로직'을 실행할 수 있습니다.

로그인 실패 누적횟수 10회 도달 시 자동입력방지문자(captcha) 이미지 및 입력 영역을 노출합니다.
POST /oauth/token 에서 에러코드 발생 시 전달받은 key 값을 아래 GET /captcha/image에 전달합니다.
- get캡챠 이미지 조회
- /captcha/image
캡챠 이미지를 생성합니다.
해당 캡챠(captcha) 이미지는 조회 시점으로부터 10분 동안 유지됩니다.
- post캡챠 인증코드 확인
- /captcha/verify
캡챠 인증코드를 확인합니다.
입력 받은 캡챠 인증코드가 일치하는지 확인합니다.
1. 직전 단계에서 POST/oauth/token 혹은 GET/oauth/openid 호출
2. 해당 API 응답 값에서 dormantMemberResponse 가 null이 아니거나 에러코드 M0020일 경우, 휴면회원 안내 페이지로 이동
3. 휴면회원 조회 API 호출하여 휴면회원 안내페이지 구성
4. 휴면회원 해제 API 호출
개인정보 보호법 제39조에 따라, 회원이 쇼핑몰에 마지막으로 로그인한지 1년 경과 시 자동으로 휴면회원으로 전환됩니다.
accessToken을 획득했지만, 현재 사용자가 '휴면 회원'인 경우에는 휴면 회원 로직을 실행합니다.(일반회원 및 간편로그인 회원)
아래 POST/oauth/token 혹은 GET/oauth/openid 응답 값 중 '휴면 회원 정보 dormantMemberResponse' 가 null이 아니거나 에러코드 M0020이 리턴 될 경우 휴면회원으로 간주합니다.
- postaccessToken 발급
- /oauth/token
액세스 토큰(accessToken)을 발급합니다.
사용자가 입력한 아이디와 비밀번호로 해당 API를 호출하여, 유효한 회원일 경우 accessToken을 획득합니다.
- getOpenid accessToken 발급
- /oauth/openid
Openid 회원의 액세스 토큰(accessToken)을 발급합니다.
Opneid 회원이란, 아래 문서에서 소개할 간편 회원 로그인 로직에서
카카오, 네이버와 등과 같은 외부 IdP(Identity Provider, 즉 아이디 제공자 )를 이용하여 로그인하는 회원을 뜻합니다.
사용자가 입력한 아이디와 비밀번호로 해당 API를 호출하여, 유효한 회원일 경우 accessToken 을 획득합니다.
해당 회원이 휴면 회원인 경우, 휴면 해제가 필요하다는 알럿 노출 후 아래와 같은 휴면해제 안내 페이지로 리다이렉트 합니다.

- get휴면 회원 조회
- /profile/dormancy
휴면회원 안내 화면에 노출할 휴면계정 정보를 조회합니다.
- 최초가입일 : signUpDateTime 회원가입일
- 최종접속일 : lastLoginDateTime 최종 로그인일, 최종 로그인일이 없는 경우 하이픈(-)을 출력합니다.
- 휴면처리일 : dormantDateTime 휴면전환일
- put휴면 회원 조회
- /profile/dormancy
회원의 휴면상태를 해제합니다.
위 휴면회원 안내페이지에서 '휴면 해제하기 ' 버튼 클릭 시 아래 API를 호출하여 휴면해제 처리합니다.
휴면해제 성공 시 로그인 상태로 간주합니다.

비밀번호 유효 기간 90일 초과 시 비밀번호를 변경하는 페이지를 노출합니다.
비밀번호 변경일시 및 '다음에 변경' 최종처리일시가 현재 시점 기준 90일을 초과한 경우, 비밀번호 변경안내 화면으로 이동합니다.
단 '일반 회원 로그인'의 경우에만 비밀번호 유효기간 로직이 실행되며,
쇼핑몰 비밀번호가 없는 '간편 회원 로그인'의 경우 비밀번호 변경 안내 대상이 아닙니다.
- postaccessToken 발급
- /oauth/token
액세스 토큰(accessToken)을 발급합니다.
응답 값 중 '비밀번호 변경 일로부터 경과 일 수daysFromLastPasswordChange'가 90 이상인 경우 비밀번호 변경 안내 대상입니다.
- post비밀번호 확인
- /profile/check-password
입력된 비밀번호를 확인합니다.
'비밀번호 변경' 클릭 시 해당 API를 호출하여 , 현재 비밀번호가 일치하는지 확인합니다.
- put비밀번호 변경
- /profile/password
비밀번호를 변경합니다.
- '비밀번호 변경' 버튼 클릭 시입력한 새 비밀번호 newPassword로 비밀번호를 변경합니다.
기본스킨에서는 비밀번호 변경에 성공 시, 로그아웃 처리 후 로그인 화면으로 이동합니다. 즉 새로accessToken을 발급 받아야 합니다. - 만약 '다음에 변경' 버튼 클릭 시 willChangeNextTime값을 통해 daysFromLastPasswordChange가 현재 날짜로 업데이트 됩니다.
비밀번호 변경은 권장 사항으로서, '다음에 변경' 클릭 시 전 단계에서 획득한 accessToken을 이상 없이 사용할 수 있으며 로그인 상태로 간주됩니다. - 만약 회원이 '비밀번호 변경' 혹은 '다음에 변경' 버튼을 클릭하지 않은 채 다른 방법 (타 버튼 클릭, URI 직접 입력 등)을 통해 다른 화면으로 이동했다 하더라도 계속 로그인 상태로 간주합니다.
단, 이 경우 daysFromLastPasswordChange값이 90일 이상으로 유지되므로, 나중에 다시 로그인 시도 시 해당 비밀번호 변경 안내 화면이 다시 노출됩니다.
🅑 간편 회원 로그인
일반 회원 로그인 영역 하단에, 간편 회원 로그인 기능을 제공합니다.
shop by pro에서 현재 제공하는 간편 로그인은 페이코, 네이버, 카카오, 페이스북 총 4개 입니다.

어드민 [설정 > 기본정책 > 외부서비스 설정]에서 연동 설정한 외부 IdP(Identity Provider, 즉 아이디 제공자)를 노출합니다.

- get쇼핑몰 기본 정보 조회
- /malls
쇼핑몰 전반에 대한 기본 정보와 설정 데이터를 조회할 수 있습니다.
어드민에 연동 설정이 되어있는 간편로그인 인증업체 (외부 IdP) 정보를 조회합니다.
연동되어 있지 않은 인증업체의 로그인 버튼은 노출되지 않습니다.
해당 API 응답 값 중 openIdJoinConfig 내 providers 값을 통해 확인 가능합니다.
각 간편로그인 버튼 클릭 이후의 상세 로직은 간편 로그인 화면 문서를 확인하시길 바랍니다.
🅒 회원 가입

회원가입 페이지로 연결되는 회원가입 버튼을 노출합니다.
상세한 내용은 회원가입 화면 문서를 참고하시길 바랍니다.
🅓 아이디 찾기
'아이디 찾기' 버튼 클릭 시, 아이디 찾기 화면으로 이동합니다.

- post아이디 찾기
- /profile/find-id
회원 가입 시 입력한 정보로 아이디를 검색합니다.
회원 가입 시 입력한 이름 / 이메일 / 휴대폰 번호 정보를 통해 아이디를 검색합니다.
- 이메일 : 회원가입 시 입력한 이메일 정보로 동일 데이터 존재 여부 조회
- 휴대폰 번호 : 회원가입 시 입력한 휴대폰 번호로 데이터 존재 여부 조회
이후, 입력한(인증한) 정보와 일치하는 회원정보가 있을 경우 아이디 안내 화면을 노출합니다.
아이디 안내 화면에서 아이디는 마스킹 처리하여 표기합니다.

- 이메일 형식 아이디
- ID 중 앞 2자리를 제외한 나머지는 마스킹 처리 - 이메일 형식이 아닌 아이디
- 끝 3자리 마스킹 처리
기본 스킨에서는 아이디가 여러 개인 경우 개행 처리하며, 조회한 아이디가 휴면 회원일 경우 (휴면) 텍스트를 노출합니다.
어드민 [설정 > 기본정책 > 쇼핑몰관리 > 회원 인증 설정]에서 '휴대폰 인증'을 설정해 둔 경우, 아래 화면과 같이 '본인인증'이라는 항목이 추가로 노출됩니다.
- 본인인증 : NHN KCP 외부 인증모듈 호출
(해당 아이디 인증 수단은 가입 시 입력한 휴대폰 번호의 일치 여부를 단순 확인하는 '휴대폰 번호' 방법과는 상이합니다)

'휴대폰 본인인증' 버튼 클릭 시 휴대폰 본인 인증 화면을 실행한 이후, POST /profile/find -id를 호출하여 아이디를 찾을 수 있습니다.
NHN KCP 휴대폰 본인인증 절차를 완료한 경우, 아이디 안내 화면에서 별도의 아이디 마스킹 처리를 하지 않고 안내합니다.
🅔 비밀번호 찾기
'비밀번호 찾기' 버튼 클릭 시 비밀번호 찾기 화면으로 이동합니다.
비밀번호 찾기 화면은 '아이디 입력', '본인 인증', '비밀번호 변경', '변경 완료' 4단계로 화면으로 진행됩니다.

- get비밀번호 찾기 계정 조회
- /profile/password/search-account
비밀번호 찾기를 위한 계정 정보를 조회합니다.
사용자가 입력한 회원 아이디를 바탕으로 '회원번호 memberNo'를 획득합니다.

비밀번호를 찾기 위한 본인인증 수단은 총 3개를 제공합니다.
- 등록된 이메일로 찾기
- 등록된 휴대폰 번호로 찾기
- 본인인증하여 찾기
- NHN KCP 외부 인증모듈을 호출하여 핸드폰 본인인증을 진행합니다.
- '아이디 찾기' 와 마찬가지로 어드민 [설정 > 기본정책 > 쇼핑몰관리 > 회원 인증 설정]에서 '휴대폰 인증'을 설정해 둔 경우에만 해당 인증 수단 항목이 추가로 노출됩니다.
- post인증번호 발송
- /authentications
회원의 연락처로 인증번호를 발송합니다.
GET /profile/password/search-account에서 전달 받은 '회원번호 memberNo'를 바탕으로 등록된 이메일 또는 휴대폰 번호로 인증 번호를 발송합니다.

- get인증번호 확인
- /authentications
입력 받은 인증번호를 확인합니다.
Usage값으로 FIND_PASSWORD를 입력합니다.
인증번호 인증 실패 누적 시 노출되는 자동입력 방지문자 (captcha)는 곧 지원 예정인 기능입니다.
본인 인증 성공 시 신규 비밀번호를 입력할 수 있습니다.
- post비밀번호 변경
- /profile/change-password-after-cert
회원 인증 후 비밀번호를 변경합니다.
기존에 사용 중이던 비밀번호와 동일한 비밀번호로 변경할 수 없습니다.
- put휴면회원 해제
- /profile/dormancy
회원의 휴면상태를 해제합니다.
만약 해당 회원이 휴면 회원인 경우, 비밀번호 변경이 성공한 이후에 아래 API를 호출하여 휴면 해제 처리합니다.
🅕 비회원 주문조회
비회원 주문조회 하기는 비회원이 구매한 주문건에 대한 주문정보를 확인할 수 있도록 비회원 정보를 입력하는 영역입니다.
비회원으로 주문한 주문번호와 주문 시 작성한 주문 비밀번호를 입력하여 확인 할 수 있습니다.

입력한 주문번호 / 주문 비밀번호에 일치하는 비회원 주문정보가 없는 경우, 화면과 같은 alert를 출력합니다.

- post비회원 주문
- /guest/orders/{orderNo}
비회원 주문의 상세 정보를 조회합니다.
입력 받은 주문번호와 주문번호 비밀번호로 해당 API 를 호출하여 비회원 주문 정보를 조회합니다.
조회 성공 시, 주문번호 orderNo 기준으로 비회원 주문 상세정보 화면을 노출합니다.