You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel预览环境下适配动态子域名的OAuth重定向URI配置问题

问题解答

关于Google OAuth通配符配置的可行性

首先明确:Google OAuth默认不支持给Vercel默认的vercel.app后缀域名配置通配符,因为vercel.app属于公共后缀域名,Google出于安全考虑禁止给公共后缀域配置通配符规则。
如果你要让所有预览环境都支持OAuth登录,有可行的替代方案:

  • 给Vercel项目配置自定义预览域名,比如指定所有预览部署都使用*.preview.yourdomain.com格式的域名(需要你自己持有yourdomain.com域名并完成解析配置),此时可以在Google Cloud后台的OAuth配置中,添加https://*.preview.yourdomain.com/api/auth/callback/google作为重定向URI,同时将https://*.preview.yourdomain.com加入允许来源列表,即可覆盖所有预览环境的域名需求。配置完成后,你可以在next-auth配置中直接读取Vercel自带的VERCEL_URL环境变量动态设置NEXTAUTH_URL,不需要手动维护不同预览环境的域名配置。
  • 如果你不想配置自定义域名,也可以每次生成预览环境后,临时将当前预览部署的域名加到Google OAuth的允许列表中,不过这种方式只适合单次测试,效率很低。

预览环境是否需要关闭身份验证

两种方案各有适用场景,可以根据你的需求选择:

选择保留身份验证的场景

如果你的预览环境需要测试和身份权限相关的业务逻辑,或是需要对外分享给测试人员、客户查看有权限限制的内容,推荐用上述自定义域名+通配符的方案保留验证功能,不用改动业务代码逻辑。
注意:通配符规则仅限预览环境使用,生产环境必须写死固定域名,避免安全风险

选择关闭身份验证的场景

如果你的预览环境仅测试前端无权限逻辑,不需要用到身份相关功能,直接关闭验证是成本更低的选择。
操作方式很简单:

  • 在Vercel后台给预览环境单独配置环境变量NEXT_PUBLIC_DISABLE_AUTH=true
  • 在next-auth的权限拦截逻辑(比如middleware、getServerSideProps、客户端权限校验)中,增加判断:如果检测到该环境变量为true,直接跳过所有身份校验,给请求放行即可。

内容的提问来源于stack exchange,提问作者Max

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:06:04