最后更新于 2026 年 10 月 24 日;Vercel 设置与自动化访问方式核验自官方部署保护更新公告及当前文档。

2026 年 9 月 9 日,Vercel 宣布 Vercel Authentication 可用于保护项目的全部部署,包括生产部署。(官方更新公告) 对测试来说,关键结论是:分别检查 Preview 是否可访问、邮件验证链接是否指向本次测试部署、测试收件邮箱是否实际收到邮件。受保护部署的自动化访问方式只解决访问环节,不能证明邮件已发送或送达。

适合维护自家 Vercel Preview 注册或邮箱验证流程、需要区分部署访问故障与邮件故障的开发者。
也适合负责预发回归、需要确认自动化测试能否访问受保护部署的 QA 工程师。
使用 AI 编程工具搭建 Demo 或 MVP、准备上线前验收邮件闭环的独立开发者,也可按这些指标逐项复核。

01

先分清访问拦截、链接错误与邮件未到

浏览器显示保护页时,应先查哪个环节?

“验证链接打不开”只是现象,不能单凭它判断邮件故障。浏览器若显示 Vercel 登录、密码或访问拒绝页面,优先查部署保护;若已进入应用,却落到生产域名、错误路径或登录页,则核对邮件链接和回调处理;若测试收件邮箱里没有邮件,则查发送记录与实际收件,而不是只改访问权限。

把验证链路拆成四项可观察结果,可以避免一次修改多个设置后找不到故障来源:

  • 访问结果:普通浏览器和自动化运行是否都能打开目标 Preview。
  • 链接结果:邮件正文中的完整 URL 是否使用本次 Preview 的域名、预期路径和回调参数。
  • 收件结果:测试收件邮箱中是否实际出现对应邮件,而不只是应用记录了发送请求。
  • 账号结果:打开链接后,应用中的验证状态是否改变,而不只是页面加载成功。

Vercel 将 Preview 用于上线前测试,并为部署生成访问 URL;这些 URL 可受部署保护。实际访问表现取决于项目的保护方式和范围,可对照Preview 环境说明核对当前部署类型和地址。

02

访问可达性:成员权限与自动化权限不是一回事

自家 E2E 测试如何进入受保护部署?

先确认项目采用的保护方式和范围。Vercel Authentication 会限制访问权限;个人浏览器中已登录的团队成员能打开 Preview,并不意味着没有该会话的自动化运行器也能访问。

Vercel 提供 Protection Bypass for Automation,可用于自动化任务访问受保护部署。官方文档推荐测试工具通过 x-vercel-protection-bypass 请求头传递密钥,也支持通过系统环境变量 VERCEL_AUTOMATION_BYPASS_SECRET 使用密钥。该方式适用于自动化测试等场景,设置细节见部署保护访问方式文档。

# 在受控的 CI 密钥管理中保存密钥,不要提交到仓库
VERCEL_AUTOMATION_BYPASS_SECRET="<secret>"

测试客户端发起访问目标 Preview 的请求时,从 CI 环境变量读取密钥,并将其放入请求头。下面是与具体框架无关的写法示意:

const headers = {
  "x-vercel-protection-bypass":
    process.env.VERCEL_AUTOMATION_BYPASS_SECRET
};

// 将 headers 加到访问本次 Preview 的请求中

不要把真实密钥硬编码进前端、提交到版本库,或放进会被记录、转发的公开链接。密钥属于部署访问凭据,不是邮件验证码、注册链接令牌,也不是邮件发送成功凭证。对于能够使用短期身份令牌的受信任测试来源,Vercel 在 2026 年 5 月 13 日公布了 Trusted Sources,并将其列为推荐方向;可按Trusted Sources 更新说明评估是否适合现有 CI。若继续使用自动化绕过密钥,应限制其保存和使用范围,并按团队安全流程管理。

03

链接目标:验收 Preview 时别跳到生产环境

测试邮件里的验证链接应该落到哪里?

验收 Preview 注册流程时,验证链接通常应进入本次测试使用的 Preview 部署。若链接落到生产域名,测试可能操作生产服务、生产账号数据或生产回调逻辑,而不是预发环境;不要为了绕开保护页,就把测试链接改指生产域名。

从测试收件邮箱复制邮件中的完整链接,逐项核对协议、主机名、路径和回调参数,再与本次部署 URL 对照。Vercel 的 VERCEL_URL 表示生成的部署域名;VERCEL_PROJECT_PRODUCTION_URL 则是项目的生产域名,而且在 Preview 部署中也会设置。若应用回退逻辑误用生产域名,就可能出现“邮件已收到,但点击后进入生产”的情况。变量定义可查阅系统环境变量文档。

检查时不要只确认项目设置页面里“有变量”,还要确认它适用于 Preview 环境、当前分支是否设置了覆盖值,以及测试是否使用新部署。Vercel 支持为 Preview 配置分支专属变量;分支变量会影响该分支部署使用的值,具体可看跨环境管理变量的说明。

较稳妥的做法是在测试环境明确配置 Preview 基础地址,再断言生成后的链接主机名确实属于本次部署。若链接看似正确但打开后回到登录页,继续检查验证令牌是否对应当前测试账号、回调处理是否读取了正确会话,以及应用是否把“验证完成”和“尚未登录”误合并成同一跳转。

04

测试证据:绕过成功不能代替实际收件

自动化请求进入 Preview,能说明邮件已经送到吗?

不能。部署保护的自动化访问只帮助测试请求进入受保护部署;要验证邮件链路,仍需分别观察应用触发发送、邮件服务响应、测试收件邮箱实际收到邮件、验证链接完成处理以及账号状态改变。

为这些环节分别留记录:触发发送的测试用例、应用或邮件服务的发送结果、测试收件箱中邮件的主题和时间、被打开链接的主机名,以及账号验证字段或页面状态。不要只以“发送函数返回成功”判定通过;它至多说明应用执行到了发送环节,不等于外部邮箱已经收件。

若邮件已收到但验证失败,可按验证链接排障指南继续区分链接不完整、目标地址错误、令牌无效与账号状态未更新。若测试数据可能包含个人信息,也应检查测试数据处理与隐私说明,避免长期用真实用户地址和资料充当回归样本。

05

风险边界:测试通路不能变成公开入口

自动化密钥和公开访问例外是不同的访问机制。Vercel 的文档指出,部署保护例外会使指定 Preview 域名免于部署保护;因此设置例外之前,要确认域名与作用范围,避免把不应公开的部署开放出去。测试结束后再次检查保护设置,必要时撤销不再使用的凭据或例外。

对自动化密钥采用最小权限和最小暴露原则:只让获授权的测试运行器读取密钥,只把自动化请求指向测试目标;不把密钥放进客户端代码、提交历史或测试报告。若当前使用的测试工具不能安全地传递请求头,可评估其他官方访问方式,但不要通过长期公开 Preview 来省去凭据管理。Vercel CLI 的 vercel curl 也可用于向受保护部署发起请求,具体能力和限制见CLI 命令文档。

用可勾选清单定位卡点

每完成一项,就记录对应部署 URL、测试账号与结果;不要只留下“邮件测试失败”这一条结论。

  • [ ] 用普通浏览器打开目标 Preview,记录看到的是保护页、应用页面还是错误页。
  • [ ] 核实当前保护方式与访问权限;自动化运行使用官方支持的受保护部署访问方式。
  • [ ] 从收到的邮件复制完整链接,核对主机名、路径和回调参数是否属于本次 Preview。
  • [ ] 检查 Preview 环境及分支覆盖变量,确认没有意外使用生产域名作为链接默认值。
  • [ ] 分别确认邮件服务的发送结果与测试收件邮箱的实际收件记录。
  • [ ] 打开验证链接后检查账号状态;页面跳转成功不等于账号已经标记为已验证。
  • [ ] 检查测试密钥没有进入前端代码、公开链接或仓库,并复核部署保护仍符合预期。

四项证据评分:衡量覆盖度,不代表送达率

每项有可复核记录记 1 分,没有记录记 0 分。这是用于排障的覆盖度量表,不是对邮件服务性能或成功率的统计。

指标 记 1 分的证据 记 0 分时优先检查
访问 记录普通访问与自动化访问各自的结果 部署保护方式、测试身份或密钥注入
链接 邮件中的完整链接主机名与目标 Preview 一致 Preview 环境变量、分支覆盖、回调地址
收件 测试收件邮箱实际出现对应邮件 发送日志、收件记录与测试地址
账号 打开链接后账号验证状态已改变 令牌处理、账号匹配、状态更新和跳转

0—1 分时,先补齐访问和收件证据,暂不判断验证功能本身故障;2—3 分时,围绕缺失项定位单一环节后重跑;4 分只表示本次测试的四类证据齐全,不代表其他部署、分支或邮件服务配置也已通过。

若测试仅需短期注册或收取一次验证邮件,VoidAlias 首页提供无需注册、打开即用的一次性收件地址;页面说明地址 3 小时后自动销毁,期间可延长,适合短期验收,不适合长期账号找回或持续回归留档。地址有效期与使用边界可在VoidAlias 临时收件页面核对。它解决的是测试收件地址选择,不会替代 Vercel Preview 的访问授权、链接目标核对或账号状态验收;需要长期收信、找回账户或接收后续通知时,应改用可持续访问的邮箱方案。

给下一个网站一个新别名

邮箱栏就在别名页上。填真实邮箱,收一封 6 位验证码,就可以建地址。

去填写邮箱