백엔드 프론트와의 OAuth 진행 흐름 - prgrms-web-devcourse/Team_Alchomist_ShakeNMatch_FE GitHub Wiki
(참고 링크)[https://velog.io/@max9106/OAuth]
- KaKaoButton 클릭시 OAuth Authorization Page로 이동
- 해당 페이지에서 인증 성공시, /oauth/kakao 페이지로 redirect
- 해당 페이지에서는 queryString으로 code( 인증에 성공했다는 Authorization Code) 값이 있을시 백엔드 서버측으로 해당 값 전송
- 백엔드에서는 해당 Authorization Code를 이용해 OAuth 서버로부터 Access토큰 및 Refresh토큰 발급
- 백엔드는 발급받은 Access토큰으로 카카오로부터 User정보 취득.
- 해당 유저가 서버 유저DB에 존재하는 유저라면, 유저DB속 유저객체와함께, Access토큰을 클라이언트에 전달. 6.1. 클라이언트에서는 로그인으로 처리, 토큰과 유저정보를 Context 및 session에 보관
- 해당 유저가 서버 유저DB에 존재하지 않는 유저라면, Access토큰과 미가입유저라는 상태를 클라이언트에게 전달. 7.1. access토큰과 함께 추가정보 전달 ( 닉네임, gender, age, mbti ). 7.2. 백엔드에서 access토큰을 이용해 카카오로부터 유저정보를 받고(가입 유저 판단하기 위한 값), 추가정보와 함께 합쳐서 유저DB에 저장, response로 access토큰과 유저객체 클라이언트에게 전달.