记录Auth.js的callbackUrl问题解决经历

最近在给Next.js项目配置 Auth.js时,遇到一个很头疼的问题。在本地测试和在Vercel上部署时,均可正常运行,但是同样的代码部署到 Google Cloud 云服务器上时,就会有问题。具体问题是,当使用Github登录时,callback会callback到http://0.0.0.0:3000/api/auth/signin?error=OAuthCallbackError

一开始猜测是Nginx配置问题,检查之后确认无误。

后面花了很长时间,才意识到,Auth.js可以开启debug:true。开启后,发现我向github发送的请求内容中,

1
2
"signinUrl": "http://0.0.0.0:3000/api/auth/signin/github",
“callbackUrl”: “http://0.0.0.0:3000/api/auth/callback/github”,

虽然没有发现具体原因。但是想起auth.js文档中,明确写了v5版本,不需要规定AUTH_URL

Auth.js AUTH_URL

在环境变量中,设置

1
2
AUTH_URL=【自己的域名】
例如:AUTH_URL=https://podcasthighlight.com

重启项目,发现运行正常,问题解决。