클라이언트에서 Get GitHub Login URL api로 응답 받은 login_url로 사용자를 이동시킨다.
사용자가 Github에 로그인하고, 인증을 한다.
백엔드 쪽의 /callback으로 인증 코드가 넘어옴.
백엔드에서 인증 코드를 사용해 access_token을 발급받아 회원 DB에 저장.
백엔드에서 브라우저의 쿠키로 token과 리다이렉트 경로를 보냄.
(여기서 문제 : 클라이언트에서는 로그인 과정이 끝났다는 걸 어떻게 감지하는가?)
Github OAuth 인증이 끝나면 클라이언트에서 백엔드로 '(예시) GET /user/current' 를 보내 현재 로그인한 사용자의 정보를 받아온다.
이후 이슈 발급 등을 위해 백엔드로 POST 요청을 보낼 때 Header 의 Authorization에 쿠키에 저장된 토큰(-> 5번)을 동봉하여 보내면 백엔드에서는 옳바른 유저인지 검증하고 로직을 처리


백엔드에서 모든 인증 과정을 처리하지 않고 프론트엔드와 역할을 분담하여 구현하는 것이 어떤가?
위와 같이 구현하면 프론트엔드는 fetch 요청에 인증 code를 함께 동봉하여 보내고 그에 대한 응답으로 토큰을 받아 로그인 과정이 전부 정상적으로 끝났다는 걸 확인 할 수 있다.