시작하기
인가 코드 받기
Request
GET /?client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}&response_type=code HTTP/1.1
Host: oauth.network
Name | Type | Description | Required |
---|---|---|---|
client_id | String |
앱 REST API 키 [시작하기]에서 확인 가능 |
O |
redirect_uri | String |
인가 코드를 전달받을 서비스 서버의 URI 파라메터 redirect_uri 등록 단 신청한 도메인 host가 꼭 포함되어야함 |
O |
response_type | String |
code 로 고정 |
O |
scopes | String |
사용자에게 동의 요청할 동의 항목 ID 목록 쉼표(,)로 구분해 여러 개 전달 가능 email, phone 선택 요청가능 |
X |
state | String |
로그인 과정 중 동일한 값을 유지하는 임의의 문자열(정해진 형식 없음) Cross-Site Request Forgery(CSRF) 공격으로부터 oauth.network 로그인 요청을 보호하기 위해 사용 각 사용자의 로그인 요청에 대한 state 값은 고유해야 함인가 코드 요청, 인가 코드 응답, 토큰 발급 요청의 state 값 일치 여부로 요청 및 응답 유효성 확인 가능
|
X |
nonce | String |
OpenID Connect를 통해 Cliend Id을 함께 발급받을 경우, Cliend Id 재생 공격을 방지하기 위해 사용 Cliend Id 유효성 검증시 대조할 임의의 문자열(정해진 형식 없음) |
X |
Name | Type | Description | Required |
---|---|---|---|
code | String |
토큰 받기 요청에 필요한 인가 코드 | X |
state | String |
요청 시 전달한 state 값과 동일한 값 |
X |
error | String |
인증 실패 시 반환되는 에러 코드 | X |
error_description | String |
인증 실패 시 반환되는 에러 메시지 | X |
토큰 받기
Request
POST /?grant_type=authorization_code&client_id=${client_id}&redirect_uri=${redirect_uri}&code=${code}&client_secret=${client_secret} HTTP/1.1
Host: oauth.network
Content-type: application/x-www-form-urlencoded;charset=utf-8
Name | Type | Description | Required |
---|---|---|---|
grant_type | String |
authorization_code 로 고정 |
O |
client_id | String |
앱 REST API 키 [시작하기]에서 확인 가능 |
O |
redirect_uri | String |
인가 코드가 리다이렉트된 URI | O |
code | String |
인가 코드 받기 요청으로 얻은 인가 코드 | O |
client_secret | String |
토큰 발급 시, 보안을 강화하기 위해 추가 확인하는 코드 [시작하기]에서 확인 가능 |
O |
Name | Type | Description | Required |
---|---|---|---|
token_type | String |
토큰 타입, bearer 로 고정 |
O |
access_token | String |
사용자 액세스 토큰 값 | O |
client_id | String |
Cliend Id 값 OpenID Connect 확장 기능을 통해 발급되는 Cliend Id, Base64 인코딩 된 사용자 인증 정보 포함 |
X |
expires_in | Integer |
액세스 토큰과 Cliend Id의 만료 시간(초) 참고: 액세스 토큰과 Cliend Id의 만료 시간은 동일 |
O |
refresh_token | String |
사용자 리프레시 토큰 값 | O |
refresh_token_expires_in | Integer |
리프레시 토큰 만료 시간(초) | O |
scope | String |
인증된 사용자의 정보 조회 권한 범위 범위가 여러 개일 경우, 공백으로 구분 |
X |
토큰 리프래쉬
POST / HTTP/1.1
Host: oauth.network
authorization: bearer ${access_token}
Content-type: application/x-www-form-urlencoded;charset=utf-8
Name | Description | Required |
---|---|---|
authorization | 사용자 인증 수단, 액세스 토큰 값authorization: bearer ${access_token} |
O |
Name | Type | Description | Required |
---|---|---|---|
token_type | String |
토큰 타입, bearer 로 고정 |
O |
access_token | String |
갱신된 사용자 액세스 토큰 값 | O |
client_id | String |
갱신된 Cliend Id 값 제공 조건: Cliend Id과 함께 발급된 리프레시 토큰으로 토큰 갱신을 요청한 경우 |
X |
expires_in | Integer |
액세스 토큰 만료 시간(초) | O |
refresh_token | String |
갱신된 사용자 리프레시 토큰 값, 기존 리프레시 토큰의 유효기간이 1개월 미만인 경우에만 갱신 | X |
refresh_token_expires_in | Integer |
리프레시 토큰 만료 시간(초) | X |
사용자 정보받기
POST /?hash=${hash}&?token=${token} HTTP/1.1
Host: oauth.network
Authorization: bearer ${access_token}
Content-type: application/x-www-form-urlencoded;charset=utf-8
Name | Description | Required |
---|---|---|
Authorization | 사용자 인증 수단, 액세스 토큰 값Authorization: bearer ${access_token} |
O |
Name | Type | Description | Required |
---|---|---|---|
hash | String |
client hash 값 | X |
token | String |
client token 값 | X |
Name | Type | Description | Required |
---|---|---|---|
token_type | String |
토큰 타입, bearer 로 고정 |
O |
access_token | String |
갱신된 사용자 액세스 토큰 값 | O |
client_id | String |
갱신된 Cliend Id 값 제공 조건: Cliend Id과 함께 발급된 리프레시 토큰으로 토큰 갱신을 요청한 경우 |
X |
expires_in | Integer |
액세스 토큰 만료 시간(초) | O |
refresh_token | String |
갱신된 사용자 리프레시 토큰 값, 기존 리프레시 토큰의 유효기간이 1개월 미만인 경우에만 갱신 | X |
refresh_token_expires_in | Integer |
리프레시 토큰 만료 시간(초) | X |
String |
client email 값 | X | |
phone | String |
client phone 값 | X |