4주차 레퍼런스 제공
스프링 시큐리티
스프링 시큐리티는 인증(Authentication)과 인가(Authorization) 기능을 가진 프레임워크이다.
-
소셜 로그인을 사용하는 이유
- 직접 구현할 경우 배보다 배꼽이 커진다. → 로그인시 보안, 비번 찾기/변경, 회원가입시 필요한 이메일/전화번호 인증 등)
- 소셜로그인을 사용하면 이런 기능들을 구글, 네이버 등에 맡길 수 있어 개발에 집중 할 수 있다.
-
스프링부트 1.5 vs 스프링부트 2.0
- 기존 버전이 더 안전하게 작동하지만, 확장 포인트가 적절하게 오픈되어 있지 않아 직접 상속하거나 오버라이딩 해야 한다. 또한, 2.0으로 넘어오면서 CommonOAuth2Provider라는 enum이 추가되어 구글, 깃헙, 페이스북의 기본 설정값은 여기서 제공한다. (네이버, 카카오 등의 소셜 로그인은 직접 다 추가해줘야 한다)
스프링부트 2.0의 방식인 Spring Security Oauth2 Client
라이브러리 이용
구글 서비스 등록
- 구글 서비스 등록(구글 클라우드 플랫폼 접속)
- 지원 이메일
- 사용자 동의화면에서 노출될 이메일 주소로, 주로 help이메일을 사용한다.
- Google API 범위
- 등록할 구글 서비스에서 사용할 범위 목록이다.
- 기본값은 email, profile, openid이며, 필요시 추가 가능하다.
- 승인된 리디렉션 URI
- 서비스에서 파라미터로 인증정보를 주었을 때 인증이 성공하면 구글에서 리다이렉트할 URL
{도메인}/login/oauth2/code/{소셜서비스코드}
: 스프링부트 버전2에서 지원하는 리다이렉트 URL
- 시큐리티에서 이미 구현해둔 상태이므로, 따로 Controller에 만들 필요X
- AWS 서버에 배포하면 따로 주소를 추가해줘야 한다.
- application-oauth 등록