#!/usr/bin/env node /** * 创建居家服务员 auth 用户(Supabase Admin API) * 用法: * 1. cd mall_sql/scripts * 2. 设置环境变量 SUPABASE_URL 和 SUPABASE_SERVICE_ROLE_KEY * 3. node create_homecare_auth_user.js * * 如果未安装 @supabase/supabase-js,先执行: * npm install @supabase/supabase-js */ const { createClient } = require('@supabase/supabase-js'); const SUPABASE_URL = process.env.SUPABASE_URL || 'http://119.146.131.237:9126'; const SUPABASE_SERVICE_ROLE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY || ''; if (!SUPABASE_SERVICE_ROLE_KEY) { console.error('❌ 请设置环境变量 SUPABASE_SERVICE_ROLE_KEY'); console.error(' 该 key 可在 Supabase Dashboard -> Project Settings -> API -> service_role key 获取'); process.exit(1); } const supabase = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, { auth: { autoRefreshToken: false, persistSession: false } }); async function main() { const email = 'homecare_worker@test.com'; const password = 'Homecare123!'; console.log(`📝 正在创建/更新 auth 用户: ${email}`); // 先尝试查找现有用户 const { data: existingUsers, error: listError } = await supabase.auth.admin.listUsers({ page: 1, perPage: 1000 }); if (listError) { console.error('❌ 查询用户列表失败:', listError.message); process.exit(1); } const existingUser = existingUsers.users.find(u => u.email === email); if (existingUser) { console.log(`⚠️ 用户已存在 (ID: ${existingUser.id}),更新密码...`); const { data: updateData, error: updateError } = await supabase.auth.admin.updateUserById( existingUser.id, { password, email_confirm: true } ); if (updateError) { console.error('❌ 更新用户失败:', updateError.message); process.exit(1); } console.log('✅ 密码已更新'); console.log(` 用户ID: ${updateData.user.id}`); console.log(` 邮箱: ${updateData.user.email}`); } else { console.log('🔨 创建新用户...'); const { data: createData, error: createError } = await supabase.auth.admin.createUser({ email, password, email_confirm: true, user_metadata: { name: '居家服务员', role: 'delivery', nickname: '居家服务员' } }); if (createError) { console.error('❌ 创建用户失败:', createError.message); process.exit(1); } console.log('✅ 用户创建成功'); console.log(` 用户ID: ${createData.user.id}`); console.log(` 邮箱: ${createData.user.email}`); } console.log('\n📋 下一步:'); console.log(' 在 Supabase SQL Editor 中执行 seed_homecare_worker.sql'); console.log(' 以创建 ak_users 和 ml_delivery_staff 记录。'); } main().catch(err => { console.error('❌ 未捕获错误:', err); process.exit(1); });