forhjy

Oauth 로그인을 검색했을 때 개념적인 부분을 설명하거나, 프론트에서만 구현한다던가의 글들은 많았다. 근데 백엔드를 붙였을 때 어떻게 역할을 분배해 Github와 어떤 데이터를 주고 받는지에 대해서는 글이 많이 없는 것 같아 써본다. 그림에서 흐름은 좌 -> 우 그리고 상 -> 하 로 진행된다고 생각하면 된다.

우선 FrontEnd의 역할은 유저가 Github 로그인 버튼을 눌렀을 때 Github로 client id, redirect uri, scope를 보내 Github으로부터 code를 발급받아 백엔드로 전달하는 것이다.

위와 같이 전달하면 Github에서는 client id를 확인하고 redirect uri 로 code를 붙여서 우리쪽으로 보내준다. 그러면 프론트엔드에서 code를 받아서 백엔드 REST API 로 넘겨준다.

Code를 프론트엔드로 전달받은 백엔드는 그 다음 인증단계를 진행한다. Access token을 발급받아야 하기에URL(https://github.com/login/oauth/access_token)로 client id, client secret, code, redirect uri 를 실어서 보낸다.

이렇게 요청을 주면 github는 정보확인해서 드디어 access token을 발급해준다. 그렇게 받은 access token을 header에 실어보내면 github API 를 자유롭게 이용할 수 있다.

--

--