11'use client' ;
22
33import { useEffect , useState } from 'react' ;
4- import { redirect } from 'next/navigation' ;
4+ import { useRouter } from 'next/navigation' ;
55import Link from 'next/link' ;
66import { KakaoSignupForm } from '@/composite/signup/signUpForm/KakaoSignupForm' ;
77import { tokenController } from '@/shared/lib/token' ;
88import { AuthMethod } from '@/shared/type/authToken' ;
99
1010export default function OAuthCallbackPage ( ) {
11+ const router = useRouter ( ) ;
1112 const [ isLoading , setIsLoading ] = useState ( true ) ;
1213 const [ hasTokens , setHasTokens ] = useState ( false ) ;
1314 const [ , setLastLoginMethod ] = useState < AuthMethod | null > ( null ) ;
@@ -22,16 +23,15 @@ export default function OAuthCallbackPage() {
2223
2324 if ( ! accessToken || ! refreshToken ) {
2425 setIsLoading ( false ) ;
25- redirect ( '/login' ) ;
26+ router . replace ( '/login' ) ;
27+ return ;
2628 }
2729 if ( accessToken && refreshToken ) {
2830 setHasTokens ( true ) ;
2931 tokenController . setTokens ( accessToken , refreshToken ) ;
3032 // Oauth 로그인 성공 시 마지막 로그인 수단 저장
3133 setLastLoginMethod ( 'KAKAO' ) ;
32- setTimeout ( ( ) => {
33- redirect ( '/home' ) ;
34- } , 50 ) ;
34+ router . replace ( '/home' ) ;
3535 } else {
3636 setHasTokens ( false ) ;
3737 }
@@ -43,11 +43,11 @@ export default function OAuthCallbackPage() {
4343 }
4444 } ;
4545 handleTokenProcessing ( ) ;
46- } , [ ] ) ;
46+ } , [ router ] ) ;
4747
4848 if ( isLoading ) {
4949 return (
50- < div className = "w-full h-full bg-normal-alternative items-center justify-center" >
50+ < div className = "w-full h-full flex flex-col bg-normal-alternative items-center justify-center" >
5151 < div className = "text-center" >
5252 < div className = "animate-spin rounded-full h-12 w-12 border-b-2 border-white mx-auto mb-4" > </ div >
5353 < p className = "text-gray-100 font-medium" > 로그인 처리 중...</ p >
@@ -59,7 +59,7 @@ export default function OAuthCallbackPage() {
5959 // 토큰이 있어서 로그인 성공한 경우
6060 if ( hasTokens ) {
6161 return (
62- < div className = "w-full h-full bg-normal-alternative items-center justify-center" >
62+ < div className = "w-full h-full flex flex-col bg-normal-alternative items-center justify-center" >
6363 < div className = "text-center" >
6464 < div className = "animate-spin rounded-full h-12 w-12 border-b-2 border-white mx-auto mb-4" > </ div >
6565 < p className = "text-gray-100 font-medium" >
0 commit comments