1

我正在使用 next-auth.js 库在 next.js 中向 Google 进行身份验证。它在本地主机中运行良好,但我在生产环境中遇到了问题。我浏览了 next-auth 文档,发现这是环境变量的一个已知问题。

我面临的错误是: [error][client_fetch_error] https://next-auth.js.org/errors#client_fetch_error。所以我通过添加一个环境变量来更改代码, NEXTAUTH_URL = "https://domainname/" 正如他们在文档中提到的那样。尽管如此,我仍然面临同样的错误,它也抛出了一个错误的网关请求GET https://domaniname/api/auth/session 502
此外,我确保 clientId、clientSecret 具有正确的值和授权的重定向 URI:https://domainname/api/auth/callback/google

谁能帮我解决如何纠正它?

4

1 回答 1

0

您正面临此问题,因为您正在尝试将动态 API 路由添加到静态网站。

该文档对此有很好的解释。

为什么会发生此警告
exportPathMap 路径与 API 路由匹配。通过下一个导出静态导出 Next.js 应用程序会禁用 API 路由。

现在,很可能您没有exportPathMap直接设置 a(尽管您可以在 中设置next.config.js)。更有可能的是,您正在使用脚本中的额外export命令构建应用程序- 这就是触发警告的原因。buildpackage.json

静态 HTML 导出部分对此有更多解释:

此方法不支持 API 路由,因为它们无法预呈现为 HTML。

...在API 路由部分。

API 路由不能与next export

好的,但是我该如何解决这个问题?

解决此问题的方法是使您的应用程序非静态(SSR 或 SSG)。最简单的方法是删除该export命令,然后添加一个start.

包.json:

"scripts": {
  "build": "next build",
  "start": "next start"
}

您需要确保该start命令已运行 - 这可能因您的主机而异。

于 2021-08-03T13:38:46.313 回答