기존 서베이지에서는 이메일로 패널 로그인을 구현했었다.
이번에 서버를 도입하면서 소셜 로그인으로 회원가입 방식을 개편하기로 결정하였다.
따라서 OAuth2와 카카오 로그인을 공부하며 구현해보고자 한다.
1. OAuth란 ?
구글, 네이버, 카카오 등의 다양한 플랫폼에서 사용자 정보를 얻기 위해
제3자 클라이언트(Service)가 접근 권한을 위임받을 수 있도록 하는 표준 프로토콜
만약 OAuth를 사용하지 않는다면, 고객은 직접 Service에 자신의 Kakao 아이디와 비밀번호를 알려주고, Service가 이를 이용해 Kakao에 로그인하게 해야한다. 그러나 이는 보안상으로 굉장히 취약한 방법이다.
따라서 고객이 안전하게 자신의 Kakao Info를 우리 서비스에 전달하기 위해 OAuth가 등장하게 되었다.
OAuth를 이용하면 사용자들은 별도의 비밀번호를 입력하지 않고도 타 플랫폼상의 정보를 통해 접근 권한을 부여받을 수 있다. 현재는 OAuth2.0이 통상적으로 사용되고 있는데, 이는 1.0의 보안 문제를 해결한 버전이라고 한다.
2. OAuth2.0 동작 원리
OAuth2.0의 동작 원리를 Sequence Diagram으로 나타내면 아래와 같다.
해당 자료에는 명시되지 않았지만, 보통 9번 과정에서 Access Token과 함께 Refresh Token을 함께 부여받는다.
Access Token은 만료 기간이 짧으며, 만료되고 나면 유저가 다시 로그인을 해야 한다.
이때, Refresh Token이 존재한다면, 유저는 해당 Refresh Token을 기반으로 다시 Access Token을 발급받아 로그인 과정 없이 다시 권한을 부여받을 수 있다.
'Spring > Spring Boot' 카테고리의 다른 글
[Spring boot - OAuth2] Kakao Login 구현 #02 (0) | 2022.11.17 |
---|---|
[Spring boot - OAuth2] Kakao Login 구현 #01 (0) | 2022.11.12 |
[Vue.js - Spring Boot - MySQL] 프론트 & 백 연동 (0) | 2022.09.12 |
[Vue.js - Spring Boot - MySQL] 프로젝트 생성 (0) | 2022.09.11 |
[Spring Boot] lombok & Dto (0) | 2022.08.30 |