'use client'; import { useState, useEffect } from 'react'; import { useAuth } from '@/lib/auth'; import supabase from '@/lib/supabase'; export default function DebugPage() { const { user, session, isLoading } = useAuth(); const [cookies, setCookies] = useState>({}); const [rawCookies, setRawCookies] = useState(''); const [sessionData, setSessionData] = useState<{ session: any; user: any } | null>(null); const [redirectTarget, setRedirectTarget] = useState('/analytics'); useEffect(() => { // 获取所有cookie const allCookies = document.cookie.split(';').reduce((acc, cookie) => { const [key, value] = cookie.trim().split('='); if (key) acc[key] = value || ''; return acc; }, {} as Record); setCookies(allCookies); setRawCookies(document.cookie); // 测试supabase会话 const testSession = async () => { try { console.log('正在获取Supabase会话'); const { data, error } = await supabase.auth.getSession(); console.log('Supabase session result:', { data, error }); if (error) { console.error('Session error:', error); } else { setSessionData(data); } } catch (err) { console.error('获取会话出错:', err); } }; testSession(); }, []); const refreshSession = async () => { try { console.log('手动刷新会话'); const { data, error } = await supabase.auth.refreshSession(); console.log('刷新结果:', { data, error }); alert('会话刷新完成,请查看控制台日志'); if (!error && data.session) { window.location.reload(); } } catch (err) { console.error('刷新会话出错:', err); alert('刷新会话出错: ' + String(err)); } }; const forceRedirect = () => { if (redirectTarget) { window.location.href = redirectTarget; } }; return (

认证调试页面

用户状态

加载状态: {isLoading ? '加载中...' : '已加载'}

已登录: {user ? '是' : '否'}

用户邮箱: {user?.email || '未登录'}

用户ID: {user?.id || '未登录'}

会话有效: {session ? '是' : '否'}

会话过期时间: {session?.expires_at ? new Date(session.expires_at * 1000).toLocaleString() : '无会话'}

Supabase 会话数据

          {sessionData ? JSON.stringify(sessionData, null, 2) : '加载中...'}
        

Cookies 信息

原始Cookie字符串:

            {rawCookies || '(empty)'}
          

解析后的Cookies:

            {JSON.stringify(cookies, null, 2) || '{}'}
          

Supabase相关Cookies:

sb-access-token: {cookies['sb-access-token'] ? '存在' : '不存在'}

sb-refresh-token: {cookies['sb-refresh-token'] ? '存在' : '不存在'}

supabase-auth-token: {cookies['supabase-auth-token'] ? '存在' : '不存在'}

手动重定向

setRedirectTarget(e.target.value)} className="flex-1 px-3 py-2 border border-gray-300 rounded" placeholder="/analytics" />
); }