11'use client'
22
3- import { useEffect , useState } from 'react'
4- import { useRouter , useSearchParams } from 'next/navigation'
5- import { useMemberSession } from '../../components/member-session-context'
6- import { Button } from '@/components/ui/button'
7- import { setAccessToken , setRefreshToken } from '@/utils/session/token-storage'
3+ import { Suspense } from 'react'
4+ import AuthRedirectPageInner from './auth-redirect-page-inner'
85
96export default function AuthRedirectPage ( ) {
10-
11- const router = useRouter ( )
12- const searchParams = useSearchParams ( )
13- const { login } = useMemberSession ( )
14- const [ error , setError ] = useState < string | null > ( null )
15-
16- useEffect ( ( ) => {
17- const accessToken = searchParams . get ( 'at' )
18- const refreshToken = searchParams . get ( 'rt' )
19- if ( ! accessToken || ! refreshToken ) {
20- console . error ( '인증 토큰이 누락되었습니다.' )
21- setError ( '인증 토큰이 누락되었습니다.' )
22- return
23- }
24- setAccessToken ( accessToken )
25- setRefreshToken ( refreshToken )
26- if ( accessToken && refreshToken ) {
27- login ( 6 )
28- router . replace ( '/workspace' )
29- }
30- return
31- // 실제 서비스라면 at를 디코드하거나 백엔드에서 memberId를 받아야 함
32- setError ( '유효하지 않은 토큰입니다.' )
33- } , [ searchParams , router , login ] )
34-
35- if ( error ) {
36- return (
7+ return (
8+ < Suspense fallback = {
379 < div className = 'min-h-screen flex items-center justify-center' >
3810 < div className = 'bg-white p-8 rounded shadow text-center' >
39- < p className = 'text-red-500 font-bold mb-2' > 로그인 실패</ p >
40- < p className = 'text-gray-600' > 에러 내용 : { error } </ p >
41-
42- < Button onClick = { ( ) => router . replace ( '/login' ) } > 로그인 페이지로 이동</ Button >
11+ < p className = 'text-gray-700' > 로그인 처리 중입니다...</ p >
4312 </ div >
4413 </ div >
45- )
46- }
47-
48- return (
49- < div className = 'min-h-screen flex items-center justify-center' >
50- < div className = 'bg-white p-8 rounded shadow text-center' >
51- < p className = 'text-gray-700' > 로그인 처리 중입니다...</ p >
52- </ div >
53- </ div >
14+ } >
15+ < AuthRedirectPageInner />
16+ </ Suspense >
5417 )
5518}
0 commit comments