구글 로그인, 직접 안 짜도 되는 프롬프트 모음

세이링
2,144
1 0

구글 로그인 직접 연동해보신 분들은 알 거예요.
OAuth는 문서 보면서 하려면 진짜 시간 오래 걸리고, access token 관리, callback 처리, 사용자 정보 매핑까지 은근 복잡하거든요.

근데 ChatGPT한테 딱 이렇게 물어보면, 우리가 직접 찾아보고 고민해야 할 부분까지 다 반영해서 코드를 짜줘요.
설계부터 보안까지 “이건 진짜 개발자가 쓴 것 같다” 싶은 수준으로 말이죠.

이번엔 Google OAuth2를 활용한 소셜 로그인 구현에 필요한 전체 구조를 이렇게 요청해봤어요👇

프롬프트

복사
넌 Next.js App Router 기반의 풀스택 애플리케이션을 구축할 수 있는 시니어 프론트엔드 개발자야. 나는 현재 소셜 로그인 기능 중 Google OAuth2를 활용한 로그인 연동을 구현하려고 해. 아래 환경과 목적, 그리고 요구사항을 기반으로 설계 및 구현에 필요한 전체 코드와 흐름을 작성해줘.

[환경 조건]
- 프레임워크: Next.js 13 이상 (App Router 구조)
- 언어: TypeScript
- 데이터베이스: PostgreSQL (Prisma ORM 사용)
- 인증/인가 방식: Google OAuth2
- 인증된 사용자의 access token은 쿠키(`httpOnly`, `Secure`, `SameSite=Strict`)에 저장
- 인증 처리에는 next-auth를 사용하지 않고, 직접 OAuth 연동 구현

[기능 목표]
1. 구글 OAuth 로그인 버튼 클릭 → Google 인증 창 → 인증 성공 시 redirect URI로 콜백
2. 콜백 처리 후 사용자 정보(email, name, profile image 등)를 수신하고,
   - 기존 유저가 존재하면 로그인 처리
   - 신규 유저라면 자동 회원가입 및 유저 DB 저장
3. 사용자에게 JWT access token 발급 → httpOnly 쿠키로 설정
4. JWT는 서버 사이드 렌더링 시에도 인증 확인이 가능하도록 설정
5. 로그인 상태가 유지되며, 페이지를 새로고침하거나 이동해도 인증 정보가 유지되어야 함
6. 로그아웃 시 쿠키를 완전히 삭제하고 세션 종료

[세부 요구]
- Google Cloud Console에서 필요한 OAuth 설정 방법(redirect URI, client ID/secret 구성법 등)도 요약해서 설명해줘
- Prisma User 모델에는 소셜 로그인 정보(`provider`, `providerAccountId`)가 명확히 들어가야 함
- 인증 실패 / 콜백 오류 / JWT 검증 실패 시 예외 처리 구조를 명확히 해줘
- 쿠키 설정 및 JWT 발급 함수는 유틸화하여 재사용 가능하도록 작성
- API 구조는 `/api/auth/google/start`, `/api/auth/google/callback`, `/api/auth/logout` 으로 명확히 나눠줘
- 코드에는 상세한 주석을 달아서 흐름을 따라가기 쉽도록 해줘
- 클라이언트 컴포넌트에서 로그인 버튼 클릭 시 흐름이 어떻게 동작하는지 포함해서 UI 코드도 같이 제공해줘

[추가 요청]
- JWT는 HS256으로 서명하고, access token 유효기간은 1시간
- access token 만료 시 자동으로 refresh되는 구조는 포함하지 않아도 됨
- 쿠키 설정 시 보안 옵션(`Secure`, `SameSite`, `httpOnly`)이 실제 배포 환경에서도 유효하게 작동하도록 해줘

이 조건을 기반으로 전체 폴더 구조, 코드 예시, 흐름 설명까지 포함한 완성도 높은 구현 가이드를 작성해줘.

댓글 작성

리팩토링의 중요

여러분은 느린 프로그램 때문에 답답함을 느껴본 적 있으신가요? 개발 현장에서는 종종 코드가 복잡해지고, 성능이 점점...

업무 표준화 완성 프롬프트

직장에서 "왜 사람마다 다르게 일하죠?"라는 질문을 받아보신 적 있으신가요? 같은 업무인데도 A팀원은 이렇게, B팀원은 저렇...

프롬프트

ChatGPT

어려운 주제도 쉽게 이해 할 수 있는 방법!!

ChatGPT

부동산, 숫자로 말하다 – 실패 확률 0%로 만드는 데이터 분석법

ChatGPT

불확실성의 바다에서 나만의 등대 찾기

ChatGPT

토익 800점의 벽, AI로 맞춤형 단어장을 만들어 뚫다

ChatGPT

당신의 잠들어 있던 창작 영감, 깨우는 비밀은?

ChatGPT

월급의 20%로 시작한 투자, 5년 후 나에게 일어난 변화

ChatGPT

400ms에서 50ms로! 웹 로딩 속도를 8배 높이는 방법

ChatGPT

복잡한 레거시 코드를 어떻게 효율적으로 리팩토링할까?

ChatGPT

원격 팀의 소통 단절과 일정 지연, 어떻게 해결할 수 있을까?

ChatGPT

데이터 전처리가 모델 정확도에 미치는 영향을 최대화하는 방법

ChatGPT

작가의 상상력이 막혔을 때, 어떻게 새로운 영감을 얻을 수 있을까요?

ChatGPT

10시간 공부했는데 왜 기억나지 않을까? 과학적 학습법의 힘

ChatGPT

유지보수 악몽에서 깔끔한 코드로 바꾸는 리팩토링 전략

ChatGPT

외부 API 연동, 어떻게 하면 실패 없이 구현할 수 있을까?

ChatGPT

3시간 동안 찾지 못한 버그..이제 바로 찾

ChatGPT

5분 안에 완벽한 업무 이메일을 작성하는 비밀