Certification
인증 타입
sms | ipin | cellphone | |
---|---|---|---|
O | Undeveloped | Undeveloped | Undeveloped |
인증 대상
| Admin | Manager | Customer |
---|---|---|---|
로그인 (signIn) | O | Undeveloped | Undeveloped |
아이디 찾기 (findId) | O | Undeveloped | Undeveloped |
비밀번호 찾기 (findPassword) | O | Undeveloped | Undeveloped |
UserPolicy
userType (admin, manager, customer by site) 별로 사용자 정책을 정의할 수 있다.
로그인 인증 signInCertification
로그인 시 인증 타입을 선택할 수 있다.
code : sms, email, ipin, cellphone
아이디 찾기 인증 findIdCertification
아이디 찾기 시 인증 타입을 선택할 수 있다.
code : sms, email, ipin, cellphone
비밀번호 찾기 타입 findPasswordType
비밀번호 찾기 시 초기화 또는 재 설정을 선택할 수 있다.
code : init, change
비밀번호 초기화 인증 initPasswordCertification
비밀번호 찾기 타입이
init
인 경우 초기화 인증 타입을 선택할 수 있다.code : sms, email, ipin, cellphone
비밀번호 재설정 인증 changePasswordCertification
비밀번호 찾기 타입이
change
인 경우 재설정 인증 타입을 선택할 수 있다.code : sms, email, ipin, cellphone
인증 프로세스
signIn, findId, findPassword [need]
→ smsCodeSend [request]
→ smsCodeCheck [success]
→ timeout [fail]
→ completed after Process [remove]
POSTMAN
postman/collection/Core.postman_collection.json
Collection
Core > session > admin
POST signIn
POST smsCodeSend
POST smsCodeCheck
GET signOut
POST findId
POST findPassword
POST changePasswordAfterCertification
admin LOGIN [SAMPLE]
userPolicy 설정
userType
: adminsignInCertification
: sms
최초 세션
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
{
"result": "200",
"resultMessage": "SUCCESS",
"item": {
"code": "unsigned",
"role": [
"anonymous"
],
"lastAccessTime": 1616396661129,
"sessionKey": "hVuJ2CoYjhHEzdippAltDGPYFYmnPMRmh-90PFmB1ZcNlYA4vbnd1to1AS68T22nsOtM9OV4bemSbS2XBXiPUQ",
"contextPath": "adm",
"siteId": "adm",
"isMobile": true,
"isApp": true,
"projectId": "dxp"
}
}
2. 로그인
POST {{protocol}}://{{hostname}}:{{port}}/adm/signIn
PARAMETER
- id : 사용자 아이디
- password : 비밀번호
설정한 로그인 인증이 필요함을 알리고 인증 세션 추가된다.
certification
userId : 인증할 사용자 ID
target : signIn
status : need
{{protocol}}://{{hostname}}:{{port}}/adm/signIn
{
"result": "300",
"resultMessage": "[sms] 인증이 필요합니다."
}
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
{
"result": "200",
"resultMessage": "SUCCESS",
"item": {
"code": "unsigned",
"role": [
"anonymous"
],
"lastAccessTime": 1616396661129,
"sessionKey": "hVuJ2CoYjhHEzdippAltDGPYFYmnPMRmh-90PFmB1ZcNlYA4vbnd1to1AS68T22nsOtM9OV4bemSbS2XBXiPUQ",
"contextPath": "adm",
"siteId": "adm",
"isMobile": true,
"isApp": true,
"projectId": "dxp",
"certification": {
"userId": "system", //인증할 userID
"target": "signIn", //인증 대상 (signIn, findId, findPassword)
"type": null,
"status": "need", //인증 상태 (need, request, success, fail)
"certSmsCode": null,
"data": {}
}
}
}
3. SMS 인증 코드 전송
POST {{protocol}}://{{hostname}}:{{port}}/adm/smsCodeSend
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
인증 코드 발행가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 need
4자리 인증 코드 발행
certification 세션 갱신
certification
userId : 인증할 사용자 ID
target : signIn
type : sms
status : request
certSmsCode
certDate : 인증코드 발행 시간 → UI 에서 이 시간으로 부터 3분 제한 카운트 시작
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeSend
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
인증 대상이 다른 요청일 경우
4. SMS 인증 코드 확인
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeCheck
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
- certCode : 인증코드
인증 코드 확인가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 request
인증 코드 확인
인증 시간 체크
인증시간으로부터 3분 제한
인증 코드 유효성 체크
세션키, 인증코드, 휴대폰번호 일치 여부
인증 성공 시
certification 세션 제거
바로 로그인 처리
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeCheck
admin FIND ID [SAMPLE]
userPolicy 설정
userType
: adminfindIdCertification
: sms
최초 세션
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
2. 아이디 찾기
PARAMETER
- name : 사용자 이름
- email : 이메일
- cellphone : 휴대폰번호
설정한 아이디 찾기 인증이 필요함을 알리고 인증 세션 추가된다.
certification
target : findId
status : need
{{protocol}}://{{hostname}}:{{port}}/adm/findId
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
3. SMS 인증 코드 전송
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
인증 코드 발행가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 need
4자리 인증 코드 발행
certification 세션 갱신
certification
userId : 인증할 사용자 ID
target : findId
type : sms
status : request
certSmsCode
certDate : 인증코드 발행 시간 → UI 에서 이 시간으로 부터 3분 제한 카운트 시작
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeSend
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
4. SMS 인증 코드 확인
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
- certCode : 인증코드
인증 코드 확인가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 request
인증 코드 확인
인증 시간 체크
인증시간으로부터 3분 제한
인증 코드 유효성 체크
세션키, 인증코드, 휴대폰번호 일치 여부
인증 성공 시
certification 세션 제거
찾은 아이디 결과 반환
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeCheck
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
admin FIND PASSWORD [SAMPLE]
userPolicy 설정
userType
: adminfindPasswordType
: changechangePasswordCertification
: sms
최초 세션
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
비밀번호 찾기
PARAMETER
- id : 사용자 ID
- name : 사용자 이름
- email : 이메일
- cellphone : 휴대폰번호
설정한 비밀번호 찾기 인증이 필요함을 알리고 인증 세션 추가된다.
certification
target : findId
status : need
{{protocol}}://{{hostname}}:{{port}}/adm/findPassword
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
2. SMS 인증 코드 전송
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
인증 코드 발행가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 need
4자리 인증 코드 발행
certification 세션 갱신
certification
userId : 인증할 사용자 ID
target : findPassword
type : sms
status : request
certSmsCode
certDate : 인증코드 발행 시간 → UI 에서 이 시간으로 부터 3분 제한 카운트 시작
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeSend
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
4. SMS 인증 코드 확인
PARAMETER
- cellphone : 휴대폰번호
- certTarget : 인증 대상 (signIn, findId, findPassword)
- certCode : 인증코드
인증 코드 확인가능한 상태 체크
certification 세션의 target이 certTarget 파라메터 와 같고
certification 세션의 status이 request
인증 코드 확인
인증 시간 체크
인증시간으로부터 3분 제한
인증 코드 유효성 체크
세션키, 인증코드, 휴대폰번호 일치 여부
인증 성공 시
certification 세션 유지
changePassword = true 세션 추가
비밀번호 재설정 필요 알림
{{protocol}}://{{hostname}}:{{port}}/adm/smsCodeCheck
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt
5. 비밀번호 재설정
newPassword : 변경할 비밀번호 (Encrypted)
비밀번호 변경 가능 여부 세션 체크
changePassword
: true
변경된 비밀번호 저장
certification 세션 제거
{{protocol}}://{{hostname}}:{{port}}/adm/changePasswordAfterCertification
{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt