TABLE OF CONTENT
콘텐츠로 건너뛰기
  • 검색 필드가 비어 있으므로 제안 사항이 없습니다.

[인증 토큰 호출] 인증 토큰 호출

토큰 인증 방식을 통해 API 인증이 가능합니다.

개요

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) 확인이 필요할 경우,
help@midasin.com 또는 1:1 문의하기 통해 연락 부탁드립니다.

 

샘플 호출

java 
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 인증을 진행한다.
(만료 시간은 1시간)

필수

 

호출 예시

토큰 발급 성공

HTTP/1.1 200 OK

Content-Type: application/json
{
“token” : “oooooooo”
}

 

 

API 호출 시 토큰 인증

토큰 발급 API’를 통해 전달받은 토큰값을 Token 이름의 헤더에 담아 전송합니다

 

Header

헤더명

설명

샘플 데이터

Token

토큰

eyJ0eXAiOiJKV1QiLC…(중략) ...P2LfOo
(토큰 발급 API’를 통해 전달받은 토큰값)

만약 토큰이 만료되거나 유효하지 않은 토큰일 경우, 아래와 같은 응답이 전달됩니다.

HTTP/1.1 401 Unauthorized
 

토큰 인증 요청 예제

예제로 ‘채용공고 정보 조회’ API를 토큰 인증 방식으로 호출해보겠습니다.

Token 이름의 헤더에 ‘토큰 발급 API’에서 전달받은 토큰값({$TOKEN})을 전달해줍니다.

Java
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
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 목록

XML
<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>