[자동로그인 관련]
[WebView 관련]
URL : https://id.passlogin.com/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri={encoded_redirect_uri}&state={encoded_state}&prompt={prompt}&isHybrid=Y
HTTPS
파라미터 | 타입 | 필수여부 | 설명 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
client_id | String | Y |
애플리케이션 등록시 발급받은 클라이언트 아이디. (클라이언트 아이디 확인 방법 링크) |
||||||||
redirect_uri | String | Y |
Authorization Code를 발급받은 후 요청될 Callback URL 으로 애플리케이션 등록시 등록된 Callback URI 중 하나와 일치하여야 한다. (URL 인코딩 필요) |
||||||||
response_type | String | Y | 인증 과정에 대한 구분값으로 code 로 고정 | ||||||||
state | String | Y |
CSRF(Cross Site Request Forgery) 를 방지하기 위해 사용하는 클라이언트 측 인증값으로 결과가 리다이렉트 될 때 입력한 값이 그대로 전달됨 (URL인코딩 필요) |
||||||||
prompt | String | N |
휴대폰번호 로그인 사용자 인증 시 자동로그인 기능을 제어 할 수 있다.
|
||||||||
isHybrid | String | N |
|
[PC/Mobile Web]
[WebView]
파라미터 | 타입 | 필수여부 |
---|---|---|
code | String | 휴대폰번호 로그인 인증에 성공하면 반환받는 인증 코드이며, 액세스 토큰(access token) 발급에 필수 값으로 사용 |
state | String | CSRF를 방지하기 위해 사용하는 클라이언트 측 인증값 |
HTTP/1.1 302 Found Location: https://www.sample.com/login_callback?code=0fdVa6&state=12345
HTTP/1.1 400 { "error" : "invalid_request", "message" : "parameter error" }
URL : https://id.passlogin.com/oauth2/token?grant_type={grant_type}&client_id={client_id}&client_secret={client_secret}&code={code}&state={encoded_state}
HTTPS
POST
Authorization: Basic {base64_encode({client_id}:{client_Secret})} Content-Type: application/x-www-form-urlencoded
파라미터 | 타입 | 필수여부 | 설명 |
---|---|---|---|
grant_type | String | Y | 인증 과정에 대한 구분값으로 authorization_code 로 고정 |
client_id | String | N |
애플리케이션 등록 시 발급받은 클라이언트 아이디. (클라이언트 아이디 확인 방법 링크) Basic 방식의 Authorization 헤더를 사용할 수 없는 경우 요청 파라미터에 클라이언트 아이디를 셋팅한다. |
client_secret | String | N |
애플리케이션 등록 시 발급받은 클라이언트 Secret. (클라이언트 Secret 확인 방법 링크) Basic 방식의 Authorization 헤더를 사용할 수 없는 경우 요청 파라미터에 클라이언트 Secret을 셋팅한다. |
code | String | Y | 휴대폰번호 로그인 인증 요청 API 호출에 성공하고 리턴받은 인증코드(Authorization Code) 값 |
state | String | N |
CSRF(Cross Site Request Forgery) 를 방지하기 위해 사용하는 클라이언트 측 인증값으로 결과가 리다이렉트 될 때 입력한 값이 그대로 전달됨 (URL인코딩 필요) |
curl -X POST 'https://id.passlogin.com/oauth2/token' -H 'Authorization: Basic Y2xpZW50SWQyOm1DbGllbnRTZWNyZXQ=' -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=authorization_code' -d 'code=0fdVa6' -d 'state=12345'
파라미터 | 타입 | 설명 |
---|---|---|
access_token | String | 액세스 토큰(access token) |
token_type | String | 토큰의 접근 타입 (Bearer) |
expires_in | Integer | 액세스 토큰(access token)의 만료 시간(초) |
state | String | CSRF를 방지하기 위해 사용하는 클라이언트 측 인증값(Optional) |
HTTP/1.1 200 OK { "access_token":"G/Tit+vKtqcj3rGTvqdGzWN5JskQuts5Tx4qGennVVxr/dNbRf88qBviQAWBtKDKnIeWM8Wca6XIO/H9MW1JYHaVXFqhQR8l9ezk8x+2XX8=", "token_type":"bearer", "expires_in":"3600", "state":"12345" }
HTTP/1.1 500 Internal Server Error { "error" : "server_error", "message" : "Invalid authorization code: 0fdVa6" }
에러 코드 별 설명 및 조치 방안을 안내합니다.
에러코드(error) | 에러 메시지(message) | 조치방안 |
---|---|---|
invalid_request | 입력값을 확인해주세요. | 3개 통신사에서 확인되지 않은 이름과 전화번호이므로 입력값을 확인한다. |
필수항목 {요청항목}이 누락되었습니다. | 일반적인 오류로 API에 필요한 필수 파라미터명을 체크한다. | |
{요청항목} 값이 유효하지 않습니다 | 파라미터의 값을 체크한다. | |
invalid_grant | Invalid redirect: {URL} does not match one of the registered values. |
redirect_uri가 등록된 정보와 일치하지 않습니다. redirect_uri 값을 확인한다. |
Invalid authorization code | code 값을 확인한다. | |
authentication_failed | 인증에 실패했습니다. | 헤더의 Authorization 토큰 값을 확인한다. |
invalid_client | A client id must be provided | 클라이언트 ID를 확인해주세요.(parameter is null) |
Bad client credentials | 클라이언트 ID를 확인해주세요.(DB에 없음) | |
not_found | 유효하지 않은 URL의 API를 요청하였습니다. | API URL을 확인한다. |
method_not_allowed | 지원하지 않는 HTTP Method입니다. | 요청 HTTP Method를 확인한다 |
server_error | 일시적인 오류가 발생했습니다. 잠시 후 다시 요청해 주세요. | 휴대폰번호 로그인 플랫폼에 문의한다. |