Skip to content

Donghwan814/SocialLogin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Spring Boot Social Login Module

Spring Boot 기반 Google · Kakao · Naver OAuth2 소셜 로그인 통합 모듈


📖 프로젝트 소개

이 프로젝트는 Spring Boot + Spring Security OAuth2 Client를 기반으로
Google, Kakao, Naver 소셜 로그인을 통합 구현하는 재사용 가능한 인증 모듈입니다.

단순 로그인 기능만 구현하는 것이 아니라,
소셜 로그인 이후 사용자 정보를 조회하고, 회원가입 또는 기존 회원 매핑을 처리하며,
향후 JWT 인증 방식까지 확장할 수 있도록 설계하는 것을 목표로 합니다.


🎯 개발 목표

  • Google / Kakao / Naver 소셜 로그인 통합
  • Provider별 사용자 정보 응답 구조 표준화
  • 최초 로그인 시 자동 회원가입 처리
  • 기존 회원 로그인 연동
  • 확장 가능한 모듈형 인증 구조 설계
  • JWT 기반 인증 시스템으로 확장 가능하도록 구조화

✨ 주요 기능

1. 소셜 로그인 지원

  • Google OAuth2 로그인
  • Kakao OAuth2 로그인
  • Naver OAuth2 로그인

🔐 Spring Boot Social Login Module

Spring Boot 기반 Google · Kakao · Naver OAuth2 소셜 로그인 + JWT 인증 통합 모듈


📖 프로젝트 소개

이 프로젝트는 Spring Boot + Spring Security OAuth2 Client를 기반으로
Google, Kakao, Naver 소셜 로그인을 통합 구현하고,
로그인 이후 JWT 기반 인증까지 처리하는 재사용 가능한 인증 모듈입니다.

단순히 소셜 로그인만 구현하는 것이 아니라,
OAuth2 로그인 이후 사용자 정보를 조회하고, 회원가입 또는 기존 회원 매핑을 처리하며,
최종적으로 Access Token / Refresh Token 기반 인증 구조로 확장 가능한 형태로 설계하는 것을 목표로 합니다.


🎯 개발 목표

  • Google / Kakao / Naver 소셜 로그인 통합
  • Provider별 사용자 정보 응답 구조 표준화
  • 최초 로그인 시 자동 회원가입 처리
  • 기존 회원 로그인 연동
  • JWT Access Token / Refresh Token 발급
  • Stateless 기반 인증 구조 설계
  • 확장 가능한 모듈형 인증 시스템 구현

✨ 주요 기능

1. 소셜 로그인 지원

  • Google OAuth2 로그인
  • Kakao OAuth2 로그인
  • Naver OAuth2 로그인

2. 사용자 정보 통합 처리

  • Provider마다 다른 응답 형식을 공통 인터페이스로 추상화
  • 이메일, 닉네임, Provider ID 등 핵심 정보 통합 관리

3. 회원가입 / 로그인 자동 처리

  • 최초 로그인 시 회원가입 자동 수행
  • 기존 회원이면 로그인 처리
  • 소셜 Provider와 Provider별 고유 ID를 기준으로 사용자 식별

4. JWT 인증

  • 로그인 성공 후 Access Token / Refresh Token 발급
  • JWT 기반 Stateless 인증 처리
  • 요청마다 JWT 검증 필터를 통해 사용자 인증 수행

5. 확장 가능한 인증 구조

  • Refresh Token 저장 구조 확장 가능
  • Redis 연동 가능
  • Role 기반 권한 관리 확장 가능

🛠 기술 스택

구분 기술
Language Java 21
Framework Spring Boot
Security Spring Security
OAuth Spring Security OAuth2 Client
Auth JWT
ORM Spring Data JPA
Database MySQL
Build Tool Gradle
Docs Swagger / SpringDoc OpenAPI
Utility Lombok
Optional Redis

📁 프로젝트 구조

src/
├── main/
│   ├── java/com/example/sociallogin/
│   │   ├── domain/
│   │   │   ├── auth/
│   │   │   │   ├── controller/
│   │   │   │   ├── dto/
│   │   │   │   ├── handler/
│   │   │   │   └── service/
│   │   │   └── user/
│   │   │       ├── entity/
│   │   │       ├── repository/
│   │   │       └── service/
│   │   └── global/
│   │       ├── config/
│   │       ├── exception/
│   │       ├── oauth/
│   │       └── jwt/
│   └── resources/
│       ├── application.yml
│       └── application-secret.yml
└── test/
### 2. 사용자 정보 통합 처리
- Provider마다 다른 응답 형식을 공통 인터페이스로 추상화
- 이메일, 닉네임, Provider ID 등 핵심 정보 통합 관리

### 3. 회원가입 / 로그인 자동 처리
- 최초 로그인 시 회원가입 자동 수행
- 기존 회원이면 로그인 처리
- 소셜 Provider와 Provider별 고유 ID를 기준으로 사용자 식별

### 4. 확장 가능한 인증 구조
- JWT 발급 로직 추가 가능
- Refresh Token 저장 구조 확장 가능
- Redis, Role 기반 권한 관리 등으로 확장 가능

---

## 🛠 기술 스택

| 구분 | 기술 |
|------|------|
| Language | Java 21 |
| Framework | Spring Boot |
| Security | Spring Security |
| OAuth | Spring Security OAuth2 Client |
| ORM | Spring Data JPA |
| Database | MySQL |
| Build Tool | Gradle |
| Docs | Swagger / SpringDoc OpenAPI |
| Utility | Lombok |
| Optional | JWT, Redis |

---

## 📁 프로젝트 구조

```text
src/
├── main/
│   ├── java/com/example/sociallogin/
│   │   ├── domain/
│   │   │   ├── auth/
│   │   │   │   ├── controller/
│   │   │   │   ├── dto/
│   │   │   │   ├── handler/
│   │   │   │   └── service/
│   │   │   └── user/
│   │   │       ├── entity/
│   │   │       ├── repository/
│   │   │       └── service/
│   │   └── global/
│   │       ├── config/
│   │       ├── exception/
│   │       ├── oauth/
│   │       └── jwt/
│   └── resources/
│       ├── application.yml
│       └── application-secret.yml
└── test/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages