3

开发使用 next-auth 进行身份验证的 next.js 应用程序。它目前设置为 GitHub 作为唯一的提供者。

在开发中,身份验证工作得很好。

在生产中,单击“使用 GitHub 登录”后,我被定向到 404。

我 99% 确定这与我在 GitHub OAuth 应用程序中设置的回调 URL 有关。出于开发目的,它设置为 http://localhost:3000/api/auth/callback/github。显然这对已部署的应用程序没有好处,但我不知道将其设置为什么。我尝试了几个不同的 URL,但都没有运气。

除了回调 URL 之外,我还需要在代码中设置什么才能使其在生产中正常工作吗?

4

3 回答 3

3

除了回调 URL,这来自文档:

https://next-auth.js.org/getting-started/example#deploying-to-production

部署站点时,将NEXTAUTH_URL环境变量设置为网站的规范 URL。

NEXTAUTH_URL=https://example.com

您应该在 Vercel 仪表板上将其设置为生产环境变量,以链接到 Vercel 部署您的站点的 URL。

于 2021-05-27T07:25:10.463 回答
0

这可能是因为您更改了 .env.local 文件以包含您的 GITHUB_ID 值,但没有重新启动 next.js 以获取新值。

尝试停止您的开发服务器,然后重新启动它(使用npm run dev)。

线索是 Github 身份验证 URL 包含&client_id=在末尾,没有 Github ID 令牌。

于 2021-08-28T08:46:44.640 回答
0

我遇到了同样的问题,我用于next export静态 HTML 导出。没有next export,只是简单地使用next build,它在 vercel 上对我有用。

于 2021-10-09T02:46:10.390 回答