스프링 부트, 확장!

준비중..

스프링 부트, 확장!

댓글 기능 및 소셜 로그인!

29 구글 OAuth 2.0 서비스 등록

# 구글 OAuth 2.0 서비스 등록 ## 미션 --- 구글 로그인을 위해 구글 클라우드 프로젝트를 생성하고, ![클라우드스터딩-스프링부트-구글-클라우드-oauth-클라이언트-id-생성-결과](https://i.imgur.com/3sHa8eg.png) 해당 프로젝트를 스프링 부트에 설정하시오. ![클라우드스터딩-스프링부트-구글-oauth-설정](https://i.imgur.com/yWvMRmK.png) ## 개념 --- #### ⭐️ 스프링 시큐리티란? 사용자의 "인증" 및 "권한 부여" 위한 프레임워크! 바로 스프링 시큐리티다. 이를 통해, 특정 URL에 접근을 허가 또는 불허 할 수 있다. #### ⭐️ 소셜 로그인이란? 요즘 대부분의 서비스들이, 소셜 로그인을 제공 한다. 왜일까? 서로 윈윈이기 때문이다. 먼저, 🥇"사용자"는 회원 가입으로 인한 낭비(시간/스트레스)가 없다. 🥈"서비스 제공자"는 회원 가입/이메일 인증/비빌번호 변경 등의 개발을 하지 않아도 된다. 🥉"소셜 공급자"는 사용자의 정보(취향/구매 등)를 분석하여, 좋은 비즈니스 모델을 꾀할 수 있다. #### ⭐️ OAuth 2.0 이란? 이러한 소셜 로그인 기능은 다양한 "공급자"들이 존재한다. 생각보다 많아 골치가 아프다. 이들을 묶어 표준화 한 것, 바로 OAuth(Open Authentication)이다. OAuth는 현재 2.0 버전까지 나와있다. 대표적인 OAuth 공급자(Provider)로는 Google, Facebook, Apple, 네이버, 카카오 등이 있다. 이들을 사용하려면, 먼저 공급자들에게 "서비스 제공자"로 등록 해야한다. ## 튜토리얼 --- #### ⭐️ 구글 클라우드 플랫폼 1) 접속: "https://console.cloud.google.com/"에서 새 프로젝트 생성 클릭 ![클라우드스터딩-스프링부트-구글-클라우드-프로젝트](https://i.imgur.com/uA9fQH2.png) 2) 프로젝트 생성: ![클라우드스터딩-스프링부트-구글-클라우드-프로젝트-생성](https://i.imgur.com/plvbKsQ.png) 3) API 및 서비스 설정(1): "OAuth 동의 화면 구성" ![클라우드스터딩-스프링부트-구글-클라우드-OAuth-동의-화면-설정](https://i.imgur.com/NsKcv68.png) 4) API 및 서비스 설정(2): "OAuth 2.0 클라이언트 ID" 만들기 ![클라우드스터딩-스프링부트-구글-클라우드-oauth-클라이언트-id-생성](https://i.imgur.com/crT0o1I.png) 5) 생성 결과 확인 ![클라우드스터딩-스프링부트-구글-클라우드-oauth-클라이언트-id-생성-결과](https://i.imgur.com/3sHa8eg.png) #### ⭐️ 스프링 부트 설정 6) 설정 파일 생성: "application-oauth.yaml" (오타 조심!) ![클라우드스터딩-스프링부트-구글-oauth-설정](https://i.imgur.com/yWvMRmK.png) ``` spring: security: oauth2: client.registration.google: client-id: 8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxt.com client-secret: XfxxxxxxxxxxxxxxxxxxxxxxxxYx_ scope: email, profile ``` 7) .gitignore 설정: 보안 파일, 깃 업로드 금지를 위함 (참조: https://jojoldu.tistory.com/168) ![클라우드스터딩-스프링부트-구글-oauth-gitignore-추가](https://i.imgur.com/Wg6w6SE.png) 8) 설정 파일 연동: "application.yaml" (참조: https://coding-start.tistory.com/350) ![클라우드스터딩-스프링부트-yaml-profiles-불러오기-include](https://i.imgur.com/rqVIIB6.png) #### ⭐️ 깃허브 확인 8) 커밋 & 푸시: 푸시 후, 업로드 잘 막혔는지 확인(application-oauth.yaml은 업로드 되면 안됨) ![클라우드스터딩-스프링부트-yaml-푸시-금지-성공](https://i.imgur.com/DYeGw3s.png) ## 훈련하기 --- - 스프링 시큐리티란 무엇인지 조사하시오.(https://sjh836.tistory.com/165) ## 면접 질문 --- - profile이란 무엇이고, 왜 씀? - gitignore 무엇이고, 왜 씀?