-
API (2) - 42OAuth APIBack-end/나만의 API 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와의 연동이 필요없이 모든 정보들을 사용 할 수 있다는 점이다. 다음에 서비스를 구축 할 경우 사용하고 싶은 마음이 들었다.
반응형'Back-end > 나만의 API' 카테고리의 다른 글
API (4) - Url Shortener + 42Ouath API (0) 2021.08.29 API (3) - Url Shortener (0) 2021.08.13 API (1) - Login API (0) 2021.07.07