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

Vercel生产环境下Spotify身份认证失败无法跳转主页问题求助

问题根因
  • 核心错误是将NextAuth所需的服务端敏感环境变量添加了NEXT_PUBLIC_前缀,导致服务端认证逻辑无法正常读取变量,token校验失败,middleware判断用户未登录,触发重定向回到登录页。
  • 次要可能原因为NEXTAUTH_URL配置不规范、middleware缺少路径匹配规则、Spotify回调地址未完全匹配。
解决方案

1. 修正环境变量配置

登录Vercel项目控制台,进入「Settings > Environment Variables」页面,修改以下配置:

  • 删除原有NEXT_PUBLIC_CLIENT_SECRET、NEXT_PUBLIC_CLIENT_ID变量,新增CLIENT_SECRET、CLIENT_ID变量,填入对应的值(这两个为服务端敏感变量,禁止添加NEXT_PUBLIC_前缀,否则会暴露到前端且服务端认证逻辑无法读取)
  • 确认NEXTAUTH_URL变量值为完整域名https://sp-app.vercel.app,无尾斜杠
  • 确认JWT_SECRET值为和本地开发一致的随机字符串,长度不低于32位

2. 调整代码逻辑

登录页代码调整

将登录按钮的signIn调用删除手动指定的callbackUrl参数,改为默认逻辑即可:

<button onClick={()=>signIn(provider.id)}>Login with {provider.name}</button>

middleware代码调整

在middleware文件末尾添加路径匹配规则,避免拦截不需要校验的静态资源,同时确认导入依赖:

import { NextResponse } from 'next/server'

// 原有middleware代码保持不变

export const config = {
  matcher: ['/', '/((?!api/auth|_next/static|_next/image|favicon.ico).*)'],
}

3. 校验第三方配置

登录Spotify开发者后台,确认重定向URI配置完全为https://sp-app.vercel.app/api/auth/callback/spotify,无拼写错误、多余字符、大小写错误。

4. 重新部署

在Vercel控制台触发一次全新的全量部署,不要使用缓存的增量部署,确保所有环境变量和代码修改生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:06:07