本页由英文自动翻译。

阅读英文版
Proxy Mail QA

为什么你的验证链接跳转到 localhost:3000,以及如何修复

你在预发布环境注册,收到邮件,点击链接,却在 localhost:3000 看到“无法访问此网站”。邮件本身没坏:是你的应用把一个开发地址放进了邮件。

更新于

发生了什么

每封验证、魔法链接、邀请和重置邮件都包含一个返回你应用的链接。你的认证服务商或框架根据某个设置生成这个链接:站点 URL、重定向 URL,或邮件发送程序配置的主机。如果该设置仍是 http://localhost:3000,每封邮件都会指向开发者自己的电脑。

有时链接本身是托管的,例如 https://yourproject.supabase.co/auth/v1/verify?...,只有它之后重定向到的页面是本地的。验证成功后,浏览器被送到 localhost:3000 并失败。这种情况很容易被忽略,因为邮件看起来没问题。

在 Supabase 中修复(包括在你自己的 Supabase 项目上的 Lovable 应用)

  1. 在 Supabase 控制台中,打开 Authentication → URL Configuration。
  2. 把 Site URL 设置为你的线上地址,例如 https://your-app.lovable.app 或你自己的域名。新的 Supabase 项目这里默认是 http://localhost:3000。
  3. 把你使用的其他所有环境(预发布、预览域名、用于开发的 localhost)添加到 Redirect URLs。预览部署支持通配符。
  4. 如果你的代码在调用注册或登录时传入 emailRedirectTo 或 redirectTo,请根据当前站点生成,例如 window.location.origin,或使用环境变量。不在允许列表中的重定向会回退到 Site URL。
  5. 如果你自定义了邮件模板,检查它们使用的是模板的确认 URL 或站点 URL 变量,而不是硬编码的地址。

在 Firebase Authentication 中修复

在其他技术栈中修复

在手机模拟器上

iOS 模拟器与你的电脑共享网络,所以 localhost 链接能在其中打开。Android 模拟器不行:它通过 10.0.2.2 访问你的电脑,所以指向 localhost:3000 的链接什么也打不开。对于这类模拟器,把应用的链接指向 http://10.0.2.2:3000,更好的做法是指向两者都能访问的预发布地址。详见移动应用。

Proxy Mail QA 如何标记

当测试邮件中的链接指向本地地址,或验证后重定向到本地地址时,Proxy Mail QA 会在 Accounts 行上标记(“重定向到 localhost:3000”),并在收件箱中说明原因。你一眼就能看出是环境配置错误,而不用等别人报告“验证坏了”。

如果你是有意测试本地构建,请选择 This is my dev environment。之后该项目中指向该主机的链接不再被标记,邮件检查也会放行它们。你可以在项目设置中再次移除。编程智能体可以用 MCP 工具 mark_dev_host 自行标记该主机,测试套件可以用 POST /v1/project/dev-hosts(Node.js 客户端中的 markDevHost,Python 辅助库中的 mark_dev_host)。

在你的下一次注册测试中试试

免费版,无需信用卡。创建一个地址,看着验证码或链接送达。

免费创建账号打开应用

常见问题

为什么链接对开发者有效,对我却无效?

localhost 永远指“这台电脑”。开发者的笔记本上运行着开发服务器,所以链接能打开。在其他人的电脑上没有服务在监听,所以会失败。

localhost 链接什么时候是正确的?

当你有意测试本地构建,并且开发服务器就运行在你点击链接的同一台电脑上时。在 Proxy Mail QA 中把该主机标记为开发环境,之后该项目中指向它的链接就不会再被标记。

我已经改了设置。为什么旧邮件仍链接到 localhost?

地址是在发送每封邮件时写进去的。修改设置后请求一封新邮件;旧邮件会保留旧链接。

Proxy Mail QA 会标记哪些链接?

指向 localhost、127.0.0.1、0.0.0.0、私有网络地址(如 192.168.x.x)以及以 .local、.test 或 .localhost 结尾的名称的链接,还有验证后重定向到上述地址的托管链接,例如 Supabase 的 redirect_to 或 Firebase 的 continueUrl。

你的应用是用 AI 工具构建的?选择你的工具

对本页有疑问?

可以用任何语言提问。文档可以立即回答,你也可以把问题发给 Proxy Mail QA 团队,他们会用英文回复。