Skip to content

πŸ›‚ Fix a social login duplication issue#110

Merged
jun-0411 merged 3 commits intomainfrom
fix/duplicate-social-login
Feb 28, 2026
Merged

πŸ›‚ Fix a social login duplication issue#110
jun-0411 merged 3 commits intomainfrom
fix/duplicate-social-login

Conversation

@young-52
Copy link
Collaborator

@young-52 young-52 commented Feb 28, 2026

πŸ“ μž‘μ—… λ‚΄μš©

  • μ†Œμ…œ λ‘œκ·ΈμΈμ„ μ‹œλ„ν•˜λ©΄ μ„œλ²„μ— 두 λ²ˆμ”© 인증 μš”μ²­μ΄ κ°€λ˜ 문제λ₯Ό ν•΄κ²°β€¦ν•˜λ €κ³  λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€. μ§„μ§œ ν•΄κ²°λ˜μ—ˆμ„μ§€λŠ” λ¨Έμ§€ν•΄ 봐야 μ•Œ 것 κ°™μŠ΅λ‹ˆλ‹€.
    • Selector λ„μž…: useAuthStore((state) => state)처럼 μŠ€ν† μ–΄ 전체λ₯Ό κ°€μ Έμ˜€λ˜ 방식을 ν•„μš”ν•œ μƒνƒœλ§Œ 각각 κ°€μ Έμ˜€λ„λ‘ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 둜그인 성곡 μ‹œ λ°œμƒν•˜λŠ” μŠ€ν† μ–΄ μ—…λ°μ΄νŠΈκ°€ 이 훅을 μ‚¬μš©ν•˜λŠ” λͺ¨λ“  μ»΄ν¬λ„ŒνŠΈμ˜ λΆˆν•„μš”ν•œ λ¦¬λ Œλ”λ§μ„ μœ λ°œν•˜μ§€ μ•Šλ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.
    • useCallback 적용: handleSocialLogin을 ν¬ν•¨ν•œ λͺ¨λ“  ν•Έλ“€λŸ¬ ν•¨μˆ˜λ₯Ό useCallback으둜 감싸 ν•¨μˆ˜ μ°Έμ‘°λ₯Ό κ³ μ •ν–ˆμŠ΅λ‹ˆλ‹€. 이제 λ¦¬λ Œλ”λ§μ΄ λ°œμƒν•΄λ„ ν•¨μˆ˜κ°€ μƒˆλ‘œ μƒμ„±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    • useRef κ°€λ“œ μΆ”κ°€: loginAttemptedλΌλŠ” μ°Έμ‘°(ref)λ₯Ό μ‚¬μš©ν•˜μ—¬, useEffectκ°€ μ–΄λ–€ μ΄μœ λ‘œλ“  μž¬μ‹€ν–‰λ˜λ”λΌλ„ μ‹€μ œ μ„œλ²„ μš”μ²­μ€ μ»΄ν¬λ„ŒνŠΈ 생λͺ…μ£ΌκΈ° λ™μ•ˆ λ”± ν•œ 번만 λ‚˜κ°€λ„λ‘ 보μž₯ν–ˆμŠ΅λ‹ˆλ‹€.
    • 둜그인 μƒνƒœ 체크: 이미 둜그인이 μ™„λ£Œλœ μƒνƒœ(isLoggedIn: true)라면 λ‘œμ§μ„ μ¦‰μ‹œ μ€‘λ‹¨ν•˜λ„λ‘ ν•˜μ—¬ 이쀑 처리λ₯Ό μ›μ²œ μ°¨λ‹¨ν–ˆμŠ΅λ‹ˆλ‹€.
  • μ†Œμ…œ λ‘œκ·ΈμΈμ— κ΄€ν•œ λͺ¨μ˜ ν•Έλ“€λŸ¬λ„ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

πŸ” μ†Œμ…œ 둜그인 쀑볡 μš”μ²­μ€ μ™œ λ°œμƒν–ˆλ‚˜? Gemini의 의견

1. λΆˆμ•ˆμ •ν•œ ν•¨μˆ˜ μ°Έμ‘° (useAuth ν›…)
src/hooks/useAuth.ts λ‚΄μ˜ handleSocialLogin ν•¨μˆ˜λŠ” useCallback으둜 감싸져 μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ useAuth 훅이 λ¦¬λ Œλ”λ§λ  λ•Œλ§ˆλ‹€ handleSocialLogin ν•¨μˆ˜λŠ” 항상 μƒˆλ‘œμš΄ μ°Έμ‘°λ₯Ό κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

2. μƒνƒœ μ—…λ°μ΄νŠΈμ— μ˜ν•œ μ „νŒŒ
useAuth 훅은 useAuthStore((state) => state)λ₯Ό 톡해 Zustand μŠ€ν† μ–΄ 전체λ₯Ό κ΅¬λ…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 첫 번째 μ†Œμ…œ 둜그인 μš”μ²­μ΄ μ„±κ³΅ν•˜λ©΄ login(user, token)이 ν˜ΈμΆœλ˜μ–΄ μŠ€ν† μ–΄ μƒνƒœκ°€ μ—…λ°μ΄νŠΈλ˜λŠ”λ°, μ΄λ•Œ useAuth 훅이 λ¦¬λ Œλ”λ§λ˜λ©΄μ„œ μƒˆλ‘œμš΄ handleSocialLogin ν•¨μˆ˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

3. SocialCallback의 useEffect μž¬μ‹€ν–‰
src/routes/SocialCallback.tsx의 useEffectλŠ” μ˜μ‘΄μ„± 배열에 handleSocialLogin을 κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

useEffect(() => {
  // ... 둜그인 둜직 ...
}, [provider, searchParams, handleSocialLogin, navigate]);

첫 번째 μš”μ²­ 성곡 직후 λ¦¬λ Œλ”λ§μ΄ λ°œμƒν•˜λ©΄, μ˜μ‘΄μ„± 배열에 μžˆλŠ” handleSocialLogin의 μ°Έμ‘°κ°€ λ°”λ€Œμ—ˆκΈ° λ•Œλ¬Έμ— useEffectκ°€ μ¦‰μ‹œ ν•œ 번 더 μ‹€ν–‰λ©λ‹ˆλ‹€. μ΄λ•Œ URLμ—λŠ” 아직 codeκ°€ λ‚¨μ•„μžˆμœΌλ―€λ‘œ λ™μΌν•œ μ½”λ“œλ‘œ 두 번째 μš”μ²­μ΄ μ„œλ²„λ‘œ μ „μ†‘λ©λ‹ˆλ‹€.

@young-52 young-52 requested a review from jun-0411 February 28, 2026 13:48
@young-52 young-52 added the bug Something isn't working label Feb 28, 2026
Copy link
Collaborator

@jun-0411 jun-0411 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@jun-0411 jun-0411 merged commit 91347a6 into main Feb 28, 2026
1 check passed
@jun-0411 jun-0411 deleted the fix/duplicate-social-login branch February 28, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

2 participants