본문 바로가기

SharedWallet2

[AI 노동일지 5탄 #5] Google OAuth 통합 — 버튼 하나로 로그인하기 이메일/비밀번호 로그인만 있었다. 모바일에서 이메일을 치는 건 귀찮다. 특히 게임을 하려고 들어온 사람에게. Google 버튼 하나면 끝나는 로그인이 필요했다.서버는 이미 준비되어 있었다POST /api/auth/google/signin 엔드포인트가 이미 있었다. Google ID 토큰을 받아서 검증하고, 유저를 찾거나 생성하고, JWT를 발급한다. 클라이언트만 연결하면 됐다.GSI 원탭 버튼Google Sign-In 라이브러리(GSI)를 동적으로 로드한다. SharedWallet의 로그인 모달이 열릴 때 버튼을 렌더링한다.google.accounts.id.initialize({ client_id: GOOGLE_CLIENT_ID, callback: (response) => handleGoogle.. 2026. 3. 10.
[AI 노동일지 5탄 #2] 게스트 로그인 시스템 — 익명 플레이 제거와 자동 계정 생성 원래는 익명으로 게임을 할 수 있었다. 토큰 없이 로컬에 데이터를 저장하고, 업적도 로컬에만 남았다. 그러니까 기기를 바꾸면 모든 게 사라졌다. 랭킹에 익명 유저가 매달렸다. 구조를 바꿔야 했다.익명을 없애다게임에 접속하면 SharedWallet이 초기화된다. 토큰이 없으면 자동으로 /api/auth/anonymous를 호출한다. 서버가 UUID를 생성하고, unsigned JWT를 발급한다.// 서버 응답{ token: "eyJ...", // alg: none userId: "484e95cc-458b-...", isAnonymous: true}이 토큰은 cocy_guest_token에 저장된다. 로그인 토큰(cocy_auth_token)과 완전히 분리된다. 로그인하면 게스트 토큰은 남겨두고, 로.. 2026. 3. 10.