前端开发者2小时内可用Codex插件直连Supabase完成MVP全链路:自动搭建本地Supabase环境、自然语言生成注册登录、数据读写及文件上传功能,并提供RLS权限修复指引。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

用 Codex 插件直接驱动 Supabase 构建 MVP,跳过手写后端、免配数据库、不碰服务器运维,前端开发者 2 小时内就能跑通用户注册→登录→数据读写→文件上传全链路。
安装 Codex 桌面版并启用 Supabase 插件
前往 https://codex.openai.com/download 下载桌面 App,安装后启动并用 OpenAI 账号登录。打开左侧插件市场(Plugins),搜索 “Supabase”,点击安装并授权访问 GitHub 和本地文件系统。
这一步必须完成——【未启用 Supabase 插件时,Codex 无法识别项目中的 supabase.js 配置或自动生成 auth/data/storage 相关代码】。
安装完成后重启 Codex,右下角状态栏会出现 Supabase 图标,悬停显示 “Connected to Supabase CLI”。
新建项目并一键生成 Supabase 后端骨架
点击左上角 “New Project”,选择模板 “Next.js + Supabase Auth Starter”,输入项目名(如 my-mvp),确认创建。
Codex 会自动执行以下操作:拉取官方 starter 模板 → 运行 supabase init → 启动本地 Docker 容器 → 在 Studio 中预建 auth、todos、storage 三张表 → 生成 .env.local 并填入本地 anon key 和 URL。
整个过程约 90 秒,终端输出最后一行是 ✅ Local Supabase stack is ready at http://localhost:54323,此时浏览器已自动打开 Studio 页面。
用自然语言指令生成完整功能模块
在 Codex 主编辑区顶部输入框中,直接输入中文指令:
“为首页添加一个带邮箱密码输入框的注册表单,提交后调用 Supabase Auth 创建用户,并跳转到 /dashboard;失败时在表单下方显示红色错误提示。”
按下回车,Codex 自动分析上下文,在 app/register/page.tsx 中生成完整 React 组件,包含 useFormState、supabase.auth.signUp 调用、错误捕获逻辑和样式类。
再输入:“在 dashboard 页面顶部显示当前用户邮箱,加一个退出按钮,点击后清空 session 并重定向回 login 页面。”
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
它立刻在 app/dashboard/page.tsx 中插入带 useEffect 监听 auth 状态、supabase.auth.signOut() 调用及路由跳转的代码块,且自动引入了 redirect 和 useRouter。
实时调试与权限修复
运行 npm run dev 启动 Next.js 开发服务器,访问 http://localhost:3000/register 提交测试邮箱。
如果页面卡住或返回 “permission denied”,立即打开 Supabase Studio → 左侧点击 “Authentication” → “Policies” → 找到 auth.users 表 → 关闭 “RLS enabled” 开关。
这一步不能跳过——【RLS 默认开启时,即使你是 anon 用户也无法读写 auth.users 表,注册流程必然中断】。
刷新页面重试,成功后你会看到邮箱出现在 dashboard 页,点击退出按钮即刻登出。
添加文件上传功能(三步闭环)
方法一:自然语言指令直达
在 Codex 输入:“在 dashboard 页面加一个文件上传区域,支持 JPG/PNG,上传后显示预览图,并把文件路径存进 storage bucket ‘avatars’,同时更新 users 表的 avatar_url 字段。”
它生成 useUploadFile Hook、supabase.storage.from('avatars').upload() 调用、URL 拼接逻辑,并自动补全 RLS 规则 SQL 语句供你一键粘贴到 Studio 的 Storage → Policies 中。
方法二:手动微调关键字段
进入 Studio → Storage → Buckets → 新建 bucket 名为 avatars,将 “Public” 设为 true;然后在 “Policies” 中新建一条 INSERT 策略,SQL 条件填:(bucket_id = 'avatars');最后回到 Table Editor,打开 auth.users 表,点击 “Edit schema”,新增列 avatar_url 类型为 text。
现在上传一张头像,刷新页面,预览图和数据库字段同步更新完成。














