// 测试Supabase登录功能 import { config } from 'dotenv'; import { createClient } from '@supabase/supabase-js'; // 加载环境变量 config({ path: '.env.local' }); async function testSupabaseLogin() { // 获取Supabase配置 const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL || process.env.SUPABASE_URL; const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY || process.env.SUPABASE_ANON_KEY; console.log('Supabase Configuration:'); console.log('- URL defined:', !!supabaseUrl); console.log('- Key defined:', !!supabaseKey); console.log('- URL:', supabaseUrl); if (!supabaseUrl || !supabaseKey) { console.error('缺少Supabase配置信息,请检查.env.local文件'); return; } // 创建Supabase客户端 const supabase = createClient(supabaseUrl, supabaseKey); console.log('Supabase客户端创建成功'); try { // 尝试获取会话状态 console.log('检查当前会话...'); const { data: sessionData, error: sessionError } = await supabase.auth.getSession(); if (sessionError) { console.error('获取会话失败:', sessionError.message); } else { console.log('会话状态:', sessionData.session ? '已登录' : '未登录'); } // 尝试使用测试账户登录 const testEmail = 'test@example.com'; const testPassword = 'password123'; console.log(`\n尝试使用测试账户登录: ${testEmail}`); const { data, error } = await supabase.auth.signInWithPassword({ email: testEmail, password: testPassword }); if (error) { console.error('登录失败:', error.message); // 如果登录失败,尝试注册账户 console.log('\n尝试注册测试账户...'); const { data: signUpData, error: signUpError } = await supabase.auth.signUp({ email: testEmail, password: testPassword }); if (signUpError) { console.error('注册失败:', signUpError.message); } else { console.log('注册成功:', signUpData); } } else { console.log('登录成功!'); console.log('用户信息:', data.user); } } catch (error) { console.error('发生错误:', error.message); } } testSupabaseLogin();