④ 로그인 시작 — 인증 요청 (getTokenForOneTime, getSp)

등록된 사용자의 로그인을 시작하려면, 먼저 암호화된 일회용 토큰을 발급받아 복호화한 뒤 인증을 요청합니다.

1단계 — 암호화된 일회용 토큰 요청

POST /ap/rest/auth/getTokenForOneTime

응답 예시

{"result":true,"msg":"ok","code":"000","data":{"token":"NFguzOCLg5H/hOqwtfb4F2gl/AYyXLdlhZRQfJbLAJtPh0c53fj9LE1DR6dpFe4g"}}

응답 데이터

필드설명
token암호화된 일회용 토큰

* 토큰은 AES128(CBC, PKCS8Padding)로 암호화되어 있으며, 암호화 키와 IV는 서버 키를 사용합니다. 복호화한 토큰 값을 2단계 요청에 사용합니다.

2단계 — 인증 요청 (서비스 패스워드 발급)

POST /ap/rest/auth/getSp

요청 파라미터

필드설명
userId인증을 요청하는 계정
token복호화한 일회용 토큰
random인증 결과 검증용 랜덤 값
sessionId애플리케이션 접속마다 부여되는 고유 값
clientIp애플리케이션 서버에서 추출한 클라이언트 IP

응답 예시

{"result":true,"msg":"OK.","code":"000.0","data":{"term":60,"pushConnectorUrl":"ws://...","pushConnectorToken":"...","servicePassword":"924824","userId":"testuser01"}}

응답 데이터

필드설명
term인증 대기 시간(초)
pushConnectorUrl푸시 요청 서버 URL
pushConnectorToken푸시 요청에 필요한 토큰 값
servicePassword서비스 패스워드(OTP 값)
userId인증을 요청한 계정

오류 코드

필드설명
000.1알 수 없는 오류
100.6잘못된 파라미터 오류
999.5서버 키 오류
200.1미등록 계정
200.2차단된 IP에서의 접속
200.3잘못된 모바일 정보 입력
200.4인증기 만료 시간 초과
200.5미등록 휴대폰
200.6동일 계정으로 인증 시도 중
200.7정지된 계정

응답받은 서비스 패스워드(OTP)와 남은 시간을 화면에 표시합니다. 대기 시간이 만료되거나 사용자가 앱에서 '거부'를 클릭하면 팝업으로 결과를 안내합니다.