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

세이링
2,008
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`)이 실제 배포 환경에서도 유효하게 작동하도록 해줘

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

댓글 작성

숨겨진 버그, 체계적 접근

배포 직전, 갑자기 발견된 치명적인 버그에 식은땀이 흘렀습니다. 사용자 데이터가 간헐적으로 사라지는 현상이 발생했지만, ...

단 3주 만에 시험 성적을 2등급 올린 기억법

중요한 시험을 앞두고 많은 양의 정보를 효과적으로 암기해야 했습니다. 하지만 아무리 노력해도 공부한 내용이 머릿속에 오...

프롬프트

ChatGPT

“회의는 지루한데 워크숍은 왜 이렇게 재밌을까?”

ChatGPT

“예술가의 꿈, 스타트업으로 현실이 되다!”

ChatGPT

“법무팀도 놓친 자산 위험, AI가 찾아냈다”

ChatGPT

“혼자서는 절대 알 수 없었던 것들”

ChatGPT

500번째 수동 배포에서 실수한 그날, 모든 걸 자동화하기로 결심했다

ChatGPT

“몇 시에 와서 몇 시에 가세요” vs “결과만 보여주세요”의 놀라운 차이

ChatGPT

1만 구독자에서 100만 구독자가 되기까지, 알고리즘이 아닌 진정성의 힘

ChatGPT

“예술로는 돈을 못 번다”는 편견을 깨뜨린 작은 갤러리의 기적

ChatGPT

아버지의 건물 증여, 세금폭탄이 될 뻔한 위기와 해결책

ChatGPT

혼자 공부하다 포기한 영어, 함께 하니 1년 만에 토익 900점

ChatGPT

새벽 3시에 울린 알림, 그리고 5분 만에 해결한 기적

ChatGPT

“당신은 뭘 잘하세요?”라는 질문에 답하지 못한 3년차 직원

ChatGPT

평범한 일상 속에서 다음 시대를 읽어내는 법

ChatGPT

“예산 삭감”이라는 한 마디로 무너진 지역 예술가들의 꿈

ChatGPT

2008년 금융위기 때 모든 걸 잃고 깨달은 진실

ChatGPT

“제가 도울 수 있는 게 있을까요?”라는 질문에서 시작된 작은 기적