Back-end/나만의 API

API (2) - 42OAuth API

HOONY_612 2021. 7. 28. 16:19
반응형

42OAuth서버에서 제공하는 API를 이용하여 42아카데미의 Cadet정보를 조회하는 기능을 개발해봤다.

일단 설계 다이어그램과 결과 화면부터 보고 이야기 해보겠다.

 

<설계 다이어그램>

<결과화면>

 

1. java/ouath/OAuth/Application.java에서 main run하여 서버 가동. 또는 42OAuth파일 내 42OAuth-0.0.1-SNAPSHOT.jar파일을 커맨드 창에서 가동.(주의사항은 java version은 11이여야한다.)

 

 

2. localhost:8080접속 후 가운데 LoginBox클릭

 

3. 클릭 후 로그인 or 로그인 되있으면 바로 다음 페이지로 감. 인증 거부 시 초기 화면 렌더링.

 

4. 42서버로부터 인증 코드 발급완료 후 Post요청으로 AccessToken생성.

 

5. Intra ID입력하여 Cadet정보 조회.

<결과>

 

 

위의 결과를 도출해낸 과정을 설명하겠다.

 

1. 서버 구축 및 42서버로부터 ID, SECRET번호 받기

처음으로 Spring Boot서버를 받아온다.

start.spring.io접속 후 아래의 그림과 같이 설정 후 GENERATE클릭한다.

 

두 번째로는 intra홈에서 profile → setting → API→RESISTER A NEW APP을 들어간다.

그리고 Name(API명)과 Redirect URI(42서버에서 정보를 주는 곳)을 설정한다.

 

 

2. OAuth버튼 만들기

발급을 받으면 아래와 같은 Redirect URI가 발급된다. 각자의 URI(밑에 가려진부분)을 복사하여

resource/static/index.html 파일을 생성하고 <a href="(복사한URI)">42서울 로그인</a>태그를 생성

해준다.

 

3. 42서버에서 Authorization Code발급 및 서버 확인

이제 버튼을 누르면 User는 Client ID + RedirectURI + Scope를 가지고 42서버에 접근한다.

42서버는 정보들을 확인하고 맞으면 인증 코드를 생성해 User에게 전해준다. 그 코드를 Myserver에

전달해 MyServer는 Post방식으로 Client ID + Client SECRET + 인증 코드 + Redirect URI로 42서버

에 접근한다.

 

4. 액세스 토큰 생성

이제 42서버는 정보들을 확인하고 다음과 같은 액세스 토큰을 Myserver에게 전달해준다.

그 액세스토큰을 https://api.42.infra.fr 에서 쓰고 싶은 API에 쿼리 스트링으로 ACCESS TOKEN을 전달

해주면 JSON형태로 42서버는 정보를 반환해준다.

 

 

이렇게 액세스 토큰을 생성해서 다양한 42API를 활용할 수 있다. JSON에 다양한 정보들이 들어가 있어서 활용할 수 있는 정보들이 꽤나 많았다. 제일 좋았던 것이 DB와의 연동이 필요없이 모든 정보들을 사용 할 수 있다는 점이다. 다음에 서비스를 구축 할 경우 사용하고 싶은 마음이 들었다.

반응형