인증 토큰 호출
개요
API 인증 방식이 기존 KEY인증 방식에서 토큰 인증 방식으로 변경되었습니다.
토큰 발급 API를 통해 토큰을 생성한 후,
API 호출 시에 HTTP Header에 토큰 값을 담아 전송해야 합니다.
토큰 발급 API
토큰 발급 API 입니다. 해당 API를 통해 토큰을 발급 받습니다.
Request URL
GET https://api.recruiter.co.kr/mrs2/api/oauth/token
Request Parameter
| Name | Type | Description | Required |
|---|---|---|---|
| COMPANY_AUTHORITY_KEY | String | 발급받은 회사키 | 필수 |
| API_SERVICE_KEY | String | 발급받은 인증키 | 필수 |
*회사키(COMPANY_AUTHORITY_KEY) 및 인증키(API_SERVICE_KEY) 확인이 필요할 경우,
[email protected] 또는 1:1 문의하기 통해 연락 부탁드립니다.
샘플 호출
curl -X GET "https://api.recruiter.co.kr/mrs2/api/oauth/token?COMPANY_AUTHORITY_KEY=${COMPANY_AUTHORITY_KEY}&API_SERVICE_KEY=${API_SERVICE_KEY}"
포스트맨(postman) 활용 시 유의사항포스트맨으로 회사키와 인증키 호출 시, 특수문자를 인식하지 못해 토큰 발급이 실패할 수 있습니다.
이때, 특수문자를 포함하고 있는 회사키 또는 인증키를 인코딩하여 다른 값으로 변환 후 확인 부탁 드립니다.
Response
Name | Type | Description | Required |
|---|---|---|---|
token | String | 인증된 토큰값. 해당 토큰값으로 API 인증을 진행한다. |
|
호출 예시
토큰 발급 성공
HTTP/1.1 200 OK
Content-Type: application/json
{
“token” : “oooooooo”
}
API 호출 시 토큰 인증
토큰 발급 API’를 통해 전달받은 토큰값을 Token 이름의 헤더에 담아 전송합니다
Header
헤더명 | 설명 | 샘플 데이터 |
|---|---|---|
Token | 토큰 | eyJ0eXAiOiJKV1QiLC…(중략) ...P2LfOo |
만약 토큰이 만료되거나 유효하지 않은 토큰일 경우, 아래와 같은 응답이 전달됩니다.
HTTP/1.1 401 Unauthorized
토큰 인증 요청 예제
예제로 ‘채용공고 정보 조회’ API를 토큰 인증 방식으로 호출해보겠습니다.
Token 이름의 헤더에 ‘토큰 발급 API’에서 전달받은 토큰값({$TOKEN})을 전달해줍니다.
curl -X POST "https://api.recruiter.co.kr/mrs2/api/getRecruitNoticeList" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Token: ${TOKEN}"
클라이언트 예제 개발 가이드(JAVA, Spring, Maven)
토큰 인증 방식으로 호출한 '채용공고 정보 조회' API 예제 소스 입니다.
Main.java
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
public class Main {
private static final String TOKEN_URL = "https://api.recruiter.co.kr/mrs2/api/oauth/token";
private static final String COMPANY_AUTHORITY_KEY = "80TIF85xlai1HYRqhk8rHQ==";
private static final String API_SERVICE_KEY = "cdab057f-acff-4da8-8d6b-b7a8b09fee41";
private static final String GET_RECRUIT_NOTICE_URL = "https://api.recruiter.co.kr/mrs2/api/getRecruitNoticeList";
public static void main(String[] args) {
// 키값 세팅
UriComponents uriBuilder = UriComponentsBuilder.fromHttpUrl(TOKEN_URL)
.queryParam("COMPANY_AUTHORITY_KEY", COMPANY_AUTHORITY_KEY)
.queryParam("API_SERVICE_KEY", API_SERVICE_KEY)
.build();
// 토큰 발급 API 요청
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<TokenResponseDto> tokenResponse = restTemplate.getForEntity(
uriBuilder.toString(), TokenResponseDto.class);
// 토큰이 정상적으로 발급된 경우
if (tokenResponse.getStatusCode().is2xxSuccessful()
&& tokenResponse.getBody() != null) {
String token = tokenResponse.getBody().getToken();
// 발급받은 토큰으로 채용공고 정보 API를 호출
String recruitNoticeInfoBody = getRecruitNoticeInfoBody(restTemplate, token);
// ...
}
}
private static String getRecruitNoticeInfoBody(RestTemplate restTemplate, String token) {
HttpHeaders headers = new HttpHeaders();
headers.add("Token", token);
HttpEntity<String> httpEntity = new HttpEntity<>(headers);
// 공고 목록 조회 API 호출
ResponseEntity<String> recruitNoticeResponse = restTemplate.exchange(
GET_RECRUIT_NOTICE_URL,
HttpMethod.POST,
httpEntity,
String.class);
// 유효하지 않은 토큰
if (HttpStatus.UNAUTHORIZED.equals(recruitNoticeResponse.getStatusCode())) {
// 유효하지 않은 토큰, 예외 처리
}
// 정상 처리
return recruitNoticeResponse.getBody();
}
}
/**
* 토큰 객체
*/
class TokenResponseDto {
private String token;
public String getToken() {
return token;
}
}
pom.xml - 필요한 dependency 목록
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>{version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>{version}</version>
</dependency>Updated 7 months ago