https://eboong.tistory.com/653
https://eboong.tistory.com/654
카카오 소셜 로그인을 구현하기 위한 작업은 위에서 모두 완료
이제 실제로 코드를 작성하여 기능을 구현
간단하게 프로세스 요약
[1] 인가 코드 발급 과정
1. 사용자(클라이언트) -> 서버 : 카카오 로그인 요청
2. 서버 -> 카카오 인증서버 : 인가 코드 요청
3. 카카오 인증서버 -> 사용자 : 사용자에게 로그인 요청
4. 사용자 -> 카카오 인증서버 : 사용자가 로그인
5. 카카오 인증서버 -> 사용자 : 동의 화면 출력
6. 사용자 -> 카카오 인증서버 : 동의함
7. 카카오 인증서버 -> 서버 : 인가 코드 발급 (Redirect URI로 전달함)
[2] 토큰 발급 과정
1. 서버 -> 카카오 인증서버 : 인가 코드를 넘겨주며 액세스 토큰 요청
2. 카카오 인증서버 -> 서버 : 토큰 발급
[3] 사용자 로그인 (아직 미정)
1. 인가 코드 발급
카카오 소셜 로그인을 시도하면 보안상의 이유 + OAuth 2.0 프로토콜을 따르기 위해
카카오 인증 서버에서 인증 코드가 발급된다.
OAuth 2.0 프로토콜이란?
: 사용자가 암호와 같은 자격증명을 공유하지 않고도
한 웹 사이트의 리소스에 대한 제한된 엑세스를
다른 웹 사이트에 부여할 수 있는 업계 프레임워크이다.
인가 코드(Authorization Code)는 인증서버에서 발급하는 임시 코드
엑세스 토큰으로 교환된다.
엑세스 토큰(Access Token)은 사용자의 자격 증명을 직접 공유하지 않아도
플랫폼의 사용자 리소스(여기선 카카오)에 접근할 수 있도록 하는 자격 증명.
2. 토큰 발급
액세스 토큰 (Access Token)
: API 요청시 시 인증하고 승인하는 데 사용되는 수명이 짧은 토큰
리프레쉬 토큰 (Refresh Token)
: 액세스 토큰이 만료될 때 사용자에게 재인증을 요구하지 않고
인증 서버에서 새 엑세스 토큰을 요청할 때 사용되는 수명이 긴 토큰
리프레쉬 토큰은 액세스 토큰에 비해 보안 요구 사항이 높다.
왜나햐면 사용자 계정에 대한 장기적인 엑세스를 제공하기 때문이다.
따라서 클리아언트 측에 안전하게 암호화해서 저장해야 한다.
3. 로그인
ㅇㅇㅇ
참고 자료
'여니의 프로그래밍 study > Spring & Spring Boot' 카테고리의 다른 글
[Spring] 스프링 DI (의존, 의존주입, 조립기) - 1 (0) | 2023.07.23 |
---|---|
[Spring] 스프링 시작하기 (빌드 관리 도구, 메이븐, 그래들, 빈 객체, 컨테이너) (0) | 2023.07.16 |
Spring Boot 소셜 로그인 구현 (2) | feat. kakaoTalk (0) | 2023.06.24 |
SpringBoot 소셜 로그인 구현 (1) | feat. KakaoTalk (0) | 2023.06.24 |
Servlet에 대해 알아보자 (0) | 2023.05.04 |