-
Notifications
You must be signed in to change notification settings - Fork 0
소셜 로그인
sasca37 edited this page Jan 9, 2024
·
1 revision
- MemberService 내 AuthService 패키지를 분리하여 하여 추후 분리 가능하도록 구현
- 시큐리티를 사용하지 않고, 인증/인가를 구현한다.
1. 사용자가 소셜 로그인 (네이버, 카카오, 구글) 버튼을 클릭한다.
2. (버튼을 누르면) 프론트엔드는 백엔드의 지정한 URI로 요청을 보낸다.
3. 백엔드는 이를 처리하여 cliend_id, redirect_uri 등을 포함하여 Oauth 인증 서버(Authorization Server)의 Auth Code 발급 URL로 Redirect 시킨다. 이렇게 되면 카카오 인증 서버에서 사용자에게 로그인 페이지를 제공한다.
4. 사용자가 로그인을 진행하고, 정보 사용에 동의한다.
5. 해당 정보는 Authorization Server에 전달되며, 이후 사전에 등록한 백엔드의 Redirect URI로 Auth Code와 함께 Redirected 된다.
6. 백엔드는 @GetMapping 등으로 Redirect URI로 들어오는 요청을 처리하도록 구현한다.
- 요청의 Query String으로부터 Code를 추출한다.
- 해당 Code를 가지고 AccessToken을 받아온다.
- 해당 AccessToken을 통해 사용자 정보를 받아와 회원가입 및 토큰을 발행한다.
- 로그인 이후 발급된 인증 정보인 JWT 토큰을 담아 프론트엔드에게 전달한다.