스프링 시큐리티와 OAuth2 적용 흐름도는 위와 같다.
- 사용자가 애플리케이션에 접속하면, 해당 사용자에 대한 이전 로그인 정보(세션)의 유무를 체크한다.
- 세션이 있으면 그대로 세션을 사용하고, 없으면 OAuth2 인증 과정을 거치게 된다.
- 이메일을 키값으로 사용하여 이미 가입된 사용자인지 체크한다. 이미 가입된 사용자라면 등록된 정보를 반환하여 요청한 URL 로의 접근을 허용하고, 아니라면 새롭게 User 정보를 저장하는 과정을 진행한다.
- 각 소셜 미디어에서 제공하는 User 정보가 다르기 때문에, 소셜 미디어에 따라 User 객체를 생성한 후 DB 에 저장한다.
* 세션이 있거나, 4번까지 성공한 사용자는 요청한 URL 로의 접근을 허용한다.
개발 전, 각 소셜 벤더의 개발자 센터에서 “클라이언트 ID” 와 “Secret(클라이언트 시크릿 키 값, 클라이언트 보안 비밀)” 을 발급 받아야 한다.