로그인
가입한 회원이 X2BEE 쇼핑몰에 로그인하여 계정에 액세스할 수 있는 인증 기능을 제공합니다. 이를 통해 회원은 개인 정보를 입력하고 로그인하여 개인화된 쇼핑 경험을 누릴 수 있습니다. 로그인은 일반적인 로그인과 간편 로그인(카카오, 네이버) 기능을 지원하며, 휴면 회원이 로그인 시 본인인증을 통해 로그인한 경우 휴면 회원 복원 처리 기능도 포함됩니다.
주요 기능
일반 로그인
회원 가입이 완료된 회원은 아이디와 비밀번호를 입력하여 로그인할 수 있습니다.
간편 로그인
카카오, 네이버 인증을 통해 회원가입이 완료된 회원은 해당 소셜 채널을 통한 간편 로그인이 가능합니다.
휴면 회원 복원
휴면 회원이 로그인 시 본인인증을 통해 로그인한 경우, 휴면 회원 복원 처리가 가능합니다.
토큰 발급
로그인 성공 시, 액세스 토큰(AccessToken)과 리프레시 토큰(RefreshToken)을 발급합니다.
토큰 종류
액세스 토큰(AccessToken): 사이트 이용을 위해 발급되는 토큰으로 2시간 동안 유효하며, 이후에는 권한을 상실하여 사이트 이용이 불가능합니다.
리프레시 토큰(RefreshToken): 액세스 토큰의 유효기간이 종료된 경우, 사용자가 재로그인의 과정을 거치지 않고 액세스 토큰의 유효시간을 갱신하는 토큰으로 3시간 동안 유효하며, 이후에는 액세스 토큰 갱신이 불가능합니다.
accessToken에 포함된 정보
mbrNo: 회원번호
langCd: 회원의 가입 사이트 국가 및 로그인 위치
Redis 저장소 등록
로그인 시 각 모듈에서 권한 확인 및 UserDetail(회원 기본 정보)을 사용하기 위해 Redis 저장소에 등록합니다.
캡차코드 검증
로그인 오류 3회 초과 시 무차별 대입 공격을 방지하기 위해 캡차코드 검증을 진행합니다.
프로세스 정의
번호 | 구분 | 설명 |
---|---|---|
1 | 로그인 요청 | 사용자는 클라이언트 애플리케이션에서 로그인 페이지를 통해 사용자 이름과 비밀번호를 입력하여 로그인을 시도합니다. 고객이 로그인할 때 회원ID 와 비밀번호를 입력하여 서버로 인증요청을 전달하여 신원을 검증한 후 사이트를 이용할 수 있습니다. |
2 | 간편 로그인 | 간편로그인은 소셜 미디어 계정으로 연동하여 웹사이트를 간편하게 로그인하여 사용할 수 있습니다. |
3 | 토큰 발급 | 토큰 발급은 주로 사용자 인증 후에 클라이언트에게 액세스 토큰(access token)과 리프레시 토큰(refresh token)을 제공하는 프로세스를 의미합니다. 액세스 토큰의 유효시간은 2시간이며, 2시간 이후에는 토큰의 권한을 상실하여 사이트 이용이 불가능합니다 리프레시 토큰의 유효시간은 3시간이며, 3시간 이후에는 토큰의 권한을 상실하여 액세스 토큰 재갱신이 불가능합니다. |
4 | 소셜 계정 인증 | 소셜 계정 인증 과정을 통해 소셜 채널로부터 받은 개인정보를 검증합니다. 검증 과정에서 X2BEE 쇼핑몰의 회원 여부를 판단하고, 회원가입 혹은 로그인 처리로 분기 처리 합니다. |
5 | 캡차코드 생성 | 캡차코드는 웹사이트나 애플리케이션에서 자동 가입, 스팸 전송, 봇에 의한 공격을 방지하기 위한 보안 방법입니다. 비밀번호 3회 오류 시 활성화되어 봇인지 사람인지 판별하고 있습니다. |
API 기능 목록
API | 설명 | Server | 메소드 | 비고 |
---|---|---|---|---|
로그인 | 로그인 시 사이트 이용에 필요한 accessToken과 refreshToken 두 가지 토큰이 생성됩니다. accessToken은 각 모듈에 요청 시 정상적으로 로그인 됐음을 확인하는 토큰이며, refreshToken은 accessToken의 유효기간이 만료 되었을 경우 새 accessToken을 생성하기 위한 토큰입니다. | Member | POST | |
로그아웃 | 로그인 시 생성된 refreshToken의 토큰정보를 데이터베이스에서 삭제합니다. | Member | POST | |
소셜 로그인 처리 | 소셜 계정으로 로그인을 진행합니다. 소셜계정이 연동되어 있거나, 가입 당시 소셜 계정으로 가입했을 경우 지원 됩니다. | Member | POST | |
토큰정보 갱신 | 로그인 시 생성된 accessToken의 유효기간이 만료된 경우 refreshToken을 사용하여 accessToken을 새로 생성하고, 유효기간을 연장 합니다. | Member | POST | |
소셜 계정 인증 | 소셜 계정 정보 및 본인인증 CI 값을 활용하여 회원 여부 및 소셜 연동 여부를 판단하고 소셜 계정이 연동된 계정이면 로그인 처리, 소셜 계정이 연동되어 있지 않은 회원이면 연동을 위한 권한 메세지, 비회원일 경우 회원가입 페이지를 이동하는 서비스를 지원합니다. | Member | POST | |
토큰 로그인 | 자동로그인 및 생체인증 로그인용 토큰을 사용하여, 사이트 이용이 가능한 accessToken 및 refreshToken을 생성합니다. | Member | POST | |
토큰정보 발급 | 자동로그인 및 생체인증 로그인을 위해 토큰을 생성하며, 해당 토큰은 토큰 자체의 유효기간과 서버의 데이터 베이스에서 관리됩니다. 해당 토큰의 유효기간은 10년입니다. | Member | POST | |
토큰정보 삭제 | 자동로그인 및 생체인증 로그인을 위해 생성된 토큰정보를 데이터베이스에서 삭제합니다. | Member | DELETE | |
휴면회원 해제 처리 | 휴면 처리가 된 회원의 분리보관된 개인정보를 복원 처리하여 정상회원 상태로 복원합니다. api/order/v1/member/restoreMemberOrderInfo api/order/v1/customerservice/restoreMember api/event/v1/common/undoSeparate api/event/v1/common/mergeMbrBase api/event/v1/common/mergeMbrDlvp | Member | POST | |
캡차 코드 음성 변환 | 생성된 캡차코드의 식별이 어려운 경우 생성된 숫자를 음성으로 변환하여 출력합니다. | Member | GET | |
캡차 코드 생성 | 로그인 3회 초과 오류 시, 6자리의 digit number를 무작위로 생성하여 무차별 대입 공격 등 보안 이슈를 방지합니다. | Member | GET |
용어 정의
명칭 | 설명 | 비고 |
---|---|---|
캡챠(CAPTCHA )코드 | 웹사이트나 애플리케이션에서 자동 가입, 스팸 전송, 봇에 의한 공격을 방지하기 위한 보안 메커니즘 중 하나입니다. CAPTCHA 코드는 사용자가 사람인지 로봇인지 판별할 수 있도록 하는 테스트로, 주로 왜곡된 글자나 숫자를 보여주고 사용자에게 이를 인식하도록 요청하는 방식으로 구현됩니다. |
|
액세스 토큰(Access token) | 클라이언트가 서버 리소스에 접근하기 위한 권한을 부여 받은 후, 그 권한을 증명하는데 사용되는 문자열입니다. |
|
리프레시 토큰(Refresh token) | OAuth 2.0 프로토콜에서 사용되는 보안 토큰 중 하나입니다. 주로 사용자나 클라이언트가 액세스 토큰(access token)의 만료 시간이 지날 경우 새로운 액세스 토큰을 얻기 위해 사용됩니다. 즉, 액세스 토큰을 재발급 받을 때 사용하는 토큰입니다. |
|
간편로그인 | 소셜 미디어 계정 (예: 페이스북, 구글, 트위터) 또는 기타 온라인 서비스 계정을 사용하여 다른 웹사이트나 앱에 로그인할 때 이 기능을 사용할 수 있습니다. |
|
휴면회원 | 일정 기간 동안 로그인을 하거나 서비스를 이용하지 않은 회원을 나타냅니다. |
|
기타 참고사항
인증 및 인가
로그인 시 JWT 인증 방식을 통해 생성된 토큰인 accessToken과 refreshToken은 토큰 자체에 유효기간이 설정되어 있으며, 해당 유효기간이 지났을 경우 인증에 실패합니다.
로그인을 통해 생성된 토큰은 Server-Side의 ET_MBR_CERTI_TKN_ISSU_INFO 테이블에 저장됩니다.
리프레시 토큰과 자동로그인 혹은 생체인증 토큰으로 로그인 및 갱신 과정을 진행할 때, 토큰 자체의 유효기간과 ET_MBR_CERTI_TKN_ISSU_INFO 테이블에 토큰의 존재 여부를 통해 이중 체크하여 인증 및 인가 합니다.
회원 정보 Redis Cache 등록
로그인 성공 시 생성된 UserDetail 정보를 Redis 저장소에 등록하며, 로그인 시 발급된 accessToken으로 API 요청 시 각 모듈에 UserDetail 정보를 조회 하여 제공합니다.
UserDetail에는 회원명, 회원번호, 회원관리코드(ME002), 회원구분코드(ME001), 로그인아이디, 회원등급코드(ME008), 임직원여부, 성별별구분코드(ME017), 성인인증여부, 나이, 국가코드, 회사구분코드(ME038)의 정보가 기록됩니다.
휴면회원 해제
비밀번호를 입력하여 계정의 소유주를 확인하고, 비밀번호가 일치하는 경우 별도로 분리되어 있는 분리보관 데이터 베이스에 저장된 데이터를 일반 데이터 베이스로 정보를 이관합니다.
휴면회원 해제 시 api-member의 데이터를 선 복구하고, 복구가 성공 되었을 경우 각 모듈에 휴면회원 복원 처리에 대한 API를 요청 및 전송 합니다.
각 모듈에서 복원 과정 중 실패하는 모듈이 존재 할 경우, ET_STP_MBR_FAIL_INFO 테이블에 실패한 모듈 정보를 기록 후 추후 reTrySeparateJob 배치를 통해 재실행 됩니다.
캡차코드
캡차코드의 경우 SimpleCaptcha 라이브러리를 사용합니다.
로그인 제한
로그인 시 로그인을 시도한 사이트의 국가코드와 가입 시 진행한 국가코드를 비교하여 일치하지 않을 경우 로그인이 제한됩니다.
토큰로그인은 자동로그인과 생체인증 로그인 지원
자동로그인 활성화를 위해서는, 로그인 시 자동로그인 체크박스를 활성화 후 로그인을 진행해야 하며, 자동로그인의 토큰 유효기간은 10년으로 설정되어 있습니다.
생체인증 로그인의 경우 앱 전용 서비스로 앱에서 로그인 후 마이페이지 설정을 통하여 활성화 후 로그인이 가능합니다. 생체인증 로그인의 토큰 유효기간은 10년으로 설정되어 있습니다.
소셜로그인
소셜로그인은 은 최초 소셜 채널을 통한 회원가입 혹은 일반회원으로 로그인 후 마이페이지 설정 에서 소셜 채널 계정 연동 과정을 진행 후 이용 가능합니다.
현재, X2BEE 쇼핑몰은 카카오와 네이버 소셜 계정 로그인을 지원하고 있습니다.
본인인증서비스 설정 및 개발방법
자동로그인 활성화를 위해서는, 로그인 시 자동로그인 체크박스를 활성화 후 로그인을 진행해야 하며, 자동로그인의 토큰 유효기간은 10년으로 설정되어 있습니다.
생체인증 로그인의 경우 앱 전용 서비스로 앱에서 로그인 후 마이페이지 설정을 통하여 활성화 후 로그인이 가능합니다. 생체인증 로그인의 토큰 유효기간은 10년으로 설정되어 있습니다.
네이버로그인 | API-MEMBER | application-local.properties | social.login.naver.clientId=발급받은 clientId |
|
---|---|---|---|---|
MO | env.local, env.dev | NAVER_LOGIN_KEY = 발급받은 Key | ||
카카오로그인 | API-MEMBER | application-local.properties | social.login.kakao.clientId=발급받은 clientId |
|
MO | env.local, env.dev | KAKAO_LOGIN_KEY = 발급받은 Key |
로그아웃
로그아웃을 진행하게 될 경우 액세스 토큰의 유효기간을 갱신해주는 refreshToken과 자동로그인 및 생체인증 토큰을 삭제하여 추후 해당 토큰으로 인증 요청이 들어왔을 경우 제한합니다.