Certification

인증 타입

sms

email

ipin

cellphone

sms

email

ipin

cellphone

O

Undeveloped

Undeveloped

Undeveloped

 

인증 대상

 

Admin

Manager

Customer

 

Admin

Manager

Customer

로그인 (signIn)

O

Undeveloped

Undeveloped

아이디 찾기 (findId)

O

Undeveloped

Undeveloped

비밀번호 찾기 (findPassword)

O

Undeveloped

Undeveloped

 

UserPolicy

User Policy

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 : admin

    • signInCertification : sms

 

  1. 최초 세션

{{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 : admin

    • findIdCertification : sms

 

  1. 최초 세션

{{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 : admin

    • findPasswordType : change

    • changePasswordCertification : sms

 

  1. 최초 세션

{{protocol}}://{{hostname}}:{{port}}/auth/adm/jwt

 

  1. 비밀번호 찾기

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