0. 프로젝트 소개(Spring Security) 및 Security에 대하여
1. User Entity 생성(Spring Security)
2. User 회원가입 (Spring Secureity)
3.Jwt의 사용 이유 (Spring Security)
4. Authorization(인증)
- 4-0 Authorization(인증) - 프로세스 설명
- 4-1 Authentication(인증) - UserDetails, UserDetailsService 및 JwtService 생성
- 4-2 Authentication(인증) - UsernamePasswordAuthenticationfilter 생성
- 4-3 Authentication(인증) - CorsFilter(선택사항)
- 4-4 Authentication(인증) - SecurityConfig
5. Authorization(인가)
- 5-1 Authorization(인가) - Jwt 인가 관련 에러 처리
- 5-2 Authorization(인가) - Jwt 인가 서비스 로직 추가
- 5-3 Authorization(인가) - AuthorizationFilter 생성
- 5-4 Authorization(인가) - SecurityConfig에 인가 관련 method 추가
6. OAuth
카카오톡 OAuth2.0 설정
1. 앱 등록
애플리케이션 추가하기를 클릭하여 애플리케이션을 생성한다.
2. 로그인 기능 활성화
활성화 설정 ON을 클릭하여 로그인 API를 활성화한다.
3. Redirect URI 등록
OAuth 로그인 요청 승인 후 사용자에게 다시 보낼 URI를 작성한다.
이때 Path를 반드시 /login/oauth2/code/{registrationId}로 등록해야한다.
(해당 이유는 다음 포스팅(6-5 OAuth2.0 - 필터 생성 및 SecurityConfig 수정)을 찾아보기 바람)
4. 플랫폼 설정
API를 사용할 도메인을 등록해준다. 필자의 경우 Web에서만 사용할 것이기 때문에 Web만 선택해주었다.
5. yml설정
spring:
security:
oauth2:
client:
registration:
kakao:
client-id: xxx
client-secret: xxx
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
client-authentication-method: POST
authorization-grant-type: authorization_code
scope: profile_nickname, profile_image
client-name: Kakao
provider:
kakao:
authorization-uri: https://kauth.kakao.com/oauth/authorize
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user-name-attribute: id
위에 설정한 yml파일에 있는 정보들은 로그인 요청시에 파리미터 값으로 들어가게 된다.
https://kauth.kakao.com/oauth/authorize?
scope=profile_nickname%20profile_image
&response_type=code
&state=i4qsJEmY2ROUDtyDWJj-nsvVMuqI07ogmyvBMYmOX1M%3D
&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin%2Foauth2%2Fcode%2Fkakao
&client_id= xxx
Google OAuth2.0 설정
1. 새 프로젝트 생성
2. OAuth 동의화면 구성
3. 앱 등록 수정
#1 OAuth 동의 화면
- 앱이름
- 사용자 지원 이메일
- 개발자 연락처 정보
#2 범위 선택
#3 테스트 사용자
추가 없음
#4 요약
지금까지 선택한 정보들 맞는지 확인
4. API 생성
- 왼쪽 메뉴에 사용자 인증 정보 클릭
- 사용자 인증 정보 만들기 클릭
- OAuth 클라이언트 ID 클릭
5. API 정보 입력
리디렉션 URI에 카카오와 마찬가지로 Path를 반드시 /login/oauth2/code/{registrationId}로 등록 (위의 설명 참고)
6. 생성된 API 클라이언트 ID 및 secret 생성 확인
7. yml설정
spring:
security:
oauth2:
client:
registration:
kakao:
client-id: xxx
client-secret: xxx
redirect-uri: http://localhost:8080/login/oauth2/code/kakao
client-authentication-method: POST
authorization-grant-type: authorization_code
scope: profile_nickname, profile_image
client-name: Kakao
google:
client-id: 568401436163-8nbjo5jo1djfqtl4h8dl9fpqaa4bfb5p.apps.googleusercontent.com
client-secret: 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
scope: profile, email
provider:
kakao:
authorization-uri: https://kauth.kakao.com/oauth/authorize
token-uri: https://kauth.kakao.com/oauth/token
user-info-uri: https://kapi.kakao.com/v2/user/me
user-name-attribute: id
Kakao와 달리 Google은 스프링에서 Google의 정보를 제공하기 때문에 따로 Provider의 정보를 입력하지 않아도 된다.
'SpringBoot Security' 카테고리의 다른 글
6-3 OAuth2.0 - OAuthAttribute (0) | 2023.08.27 |
---|---|
6-2 OAuth2.0 - DTO 설정 (0) | 2023.08.24 |
6-0 OAuth에 대해서 (0) | 2023.07.25 |
5-4 Authorization(인가) - SecurityConfig에 인가 관련 method 추가 (0) | 2023.07.11 |
5-3 Authorization(인가) - AuthorizationFilter 생성 (0) | 2023.07.11 |