본문 바로가기
DevTrust Store

Social Login Kit — React

카카오·네이버·구글 소셜 로그인 서버와 React 컴포넌트. 설치 즉시 동작하고, 기존 회원 시스템으로 전환할 수 있습니다.

ReactNext.jsFastifyNode.js

주요 기능

  • 카카오·네이버·구글 로그인
  • React 로그인 버튼·콜백·보호 화면 컴포넌트
  • PKCE·서명된 state 쿠키
  • Refresh token 회전과 재사용 감지
  • 내장 SQLite → 고객 API/DB 전환
  • 운영 점검 스크립트

무엇을 해결하나요

카카오·네이버·구글 소셜 로그인을 안전하게 붙이는 데 필요한 서버 코드와 React 프론트 컴포넌트를 바로 쓸 수 있는 형태로 제공합니다. 설치하면 내장 SQLite로 바로 동작하고, 나중에 고객사 회원 시스템(API 또는 DB)으로 전환할 수 있습니다.

이런 곳에 맞습니다

  • React와 자체 서버로 서비스를 직접 개발해 운영하는 회사 (개발자 1명 이상)
  • 소셜 로그인을 처음 붙이거나, 직접 만든 로그인 코드의 보안이 걱정되는 경우

이런 경우에는 맞지 않습니다

  • 카페24·아임웹·Wix·식스샵 등 쇼핑몰·홈페이지 빌더를 쓰는 경우: 빌더에 들어 있는 소셜 로그인 기능을 켜서 사용하세요.
  • 워드프레스 등 CMS 플러그인으로 운영하는 경우
  • 다른 회사에 납품할 결과물에 넣으려는 경우(개발 외주사): 별도로 문의해 주세요.

보안 설계

  • Authorization Code 흐름 + 서명된 state 쿠키, PKCE(카카오·구글) 적용, 토큰을 URL에 노출하지 않음
  • Access token(15분)은 프론트 메모리, Refresh token은 HttpOnly 쿠키 + DB에는 해시만 저장
  • Refresh token 회전과 재사용 감지(세션 묶음 전체 폐기), 다중 탭 동시 갱신 10초 유예
  • /auth/refresh·/auth/logout Origin 검사(CSRF 방어), returnTo 상대 경로만 허용(오픈 리다이렉트 방지)
  • provider가 인증한 이메일일 때만 기존 회원 자동 연결(계정 탈취 방지)

저장 모드

  • 기본: 내장 SQLite (DB 서버·Docker 불필요)
  • 방법 1: 고객사 회원 API 호출 (Spring, PHP 등 Node가 아닌 백엔드)
  • 방법 2: 고객 DB 기존 회원 테이블 직접 연동 (PostgreSQL/MySQL 참고 구현)

다운로드와 지원

  • 입금이 확인되면 라이선스가 발급되고, '내 다운로드'에서 바로 내려받을 수 있습니다(다운로드 주소는 10분 동안만 유효).
  • 업데이트 이용 기간과 이슈 지원 기간은 플랜별로 다르며, 결제일부터 계산합니다.

포함 구성

  • packages/core: provider 어댑터, 계정 연결 정책, 토큰 발급·회전
  • packages/server: Fastify 플러그인, SQLite 저장소, 고객 API 어댑터, 마이그레이션 도구
  • packages/client-core: 세션 복구, 토큰 자동 갱신, 탭 간 로그아웃 동기화
  • packages/client-react: AuthProvider, useAuth, SocialLoginButton, AuthCallback, RequireAuth
  • apps/api: 데모 서버와 운영 스크립트(check-env, migrate:api, verify:customer-api)
  • examples/react-vite: 로그인·콜백·보호 화면·로그아웃 예제
  • examples/direct-db-postgres: 방법 2 참고 구현
  • docs: 셀프 설치 매뉴얼, React 연결 가이드, provider 콘솔 설정, 마이그레이션 가이드

설치 방법

  1. 압축을 풀고 pnpm install
  2. .env.example을 .env로 복사하고 provider 키 입력
  3. pnpm check-env로 설정 점검 → pnpm dev
  4. 예제 앱(examples/react-vite)에서 로그인 흐름 확인 후 자사 프론트에 컴포넌트 연결

지원 환경

  • React 18 / 19 (Vite, CRA 등)
  • Next.js App Router (클라이언트 컴포넌트)
  • Node.js 22.13 이상 (24 LTS 권장)
  • Node.js 22.13 이상, pnpm
  • 소셜 개발자 콘솔 계정 1개 이상 (카카오·네이버·구글 중)

자주 묻는 질문

Next.js에서도 쓸 수 있나요?

App Router의 클라이언트 컴포넌트에서 사용할 수 있습니다. 서버 컴포넌트에서 사용자를 확인하는 방법은 매뉴얼의 예시를 참고해 주세요.

기존 회원 DB가 있는데 연동할 수 있나요?

고객사 회원 API를 호출하는 방법과 기존 회원 테이블에 직접 연결하는 방법(PostgreSQL/MySQL 참고 구현)을 모두 제공합니다.

프로젝트가 여러 개면 어떻게 하나요?

1 라이선스는 프로젝트(서비스·앱) 1개용입니다. 같은 프로젝트의 개발·스테이징·운영 환경은 하나로 봅니다. 다른 프로젝트에 쓰려면 라이선스를 추가로 구매해 주세요.

외주로 개발해 납품하는 프로젝트에 써도 되나요?

라이선스는 구매자가 직접 개발·운영하는 프로젝트 1개에 사용할 수 있습니다. 다른 회사에 납품하는 결과물에는 쓸 수 없으니 별도로 문의해 주세요.

업데이트 이력

공개된 버전 이력이 아직 없습니다.

환불 정책

환불 및 청약철회

  • 다운로드 전: 결제일로부터 7일 안에 전액 환불해 드립니다.
  • 다운로드 후: 디지털 콘텐츠의 특성상 청약철회가 제한됩니다(전자상거래법 제17조 제2항 제5호). 주문 단계에서 이 내용을 고지하고 동의를 받습니다.
  • 상품 하자: 표시·광고 내용과 다르거나 계약 내용과 다르게 이행된 경우, 공급받은 날부터 3개월 이내 또는 그 사실을 안 날(알 수 있었던 날)부터 30일 이내에 청약철회할 수 있습니다.
  • 환불이 완료되면 해당 주문의 라이선스와 다운로드 권한은 즉시 정지됩니다.
  • 환불은 입금하신 계좌로 영업일 기준 3일 안에 처리합니다.

초안입니다. 법령·사업자 정보 확인 후 확정합니다.