이 레포지토리는 React와 Spring Boot를 이용하여 다양한 로그인 방식을 구현하는 예제 프로젝트입니다. 웹 애플리케이션에서 인증은 중요한 요소이며, 본 프로젝트에서는 쿠키, 세션, JWT 토큰, 그리고 OAuth2를 이용한 로그인 방식을 다룹니다.
- 쿠키 기반 인증: 사용자 정보를 쿠키에 저장하여 인증 상태를 유지하는 방식.
- 세션 기반 인증: 서버 측에서 세션을 생성하고 세션 ID를 클라이언트 쿠키에 저장하여 인증을 유지하는 방식.
- JWT 토큰 기반 인증: 클라이언트와 서버 간의 stateless 통신을 위해 JWT 토큰을 이용한 인증 방식.
- OAuth2 인증: Google, Facebook 등과 같은 타사 서비스를 통해 인증을 수행하는 방식.
- 프론트엔드: React
- 백엔드: Spring Boot
- 데이터베이스: H2 Database (테스트용)
- 인증 관련 라이브러리:
- Spring Security
- JSON Web Token (JWT)
- OAuth2 클라이언트 라이브러리
multi-authentication-sample/
├── auth/ # Spring Boot 프로젝트
│ └── src/
│ └── main/
│ └── java/
│ └── com.example.auth/
│ └── controllers/
│ └── services/
│ └── config/
│ └── models/
├── frontend/ # React 프로젝트
│ └── src/
│ └── components/
│ └── pages/
│ └── services/-
frontend디렉토리로 이동 후 패키지 설치:cd frontend npm install -
개발 서버 실행:
npm start
-
backend디렉토리로 이동 후 Maven 프로젝트 빌드:cd auth ./gradlew build -
스프링 부트 애플리케이션 실행:
./gradlew bootRun
- 브라우저에서 애플리케이션에 접속 (
http://localhost:3000) - 각 인증 방식에 따른 로그인 페이지에서 로그인 시도
- 로그인 상태 확인 및 로그아웃 기능
- 다양한 인증 방식에 대한 테스트 코드 추가
- OAuth2 인증 서비스 확장 (예: GitHub, Twitter)
- 사용자 인증 데이터베이스 연동