reactjs - NextAuth.js 用于与 Google 进行身份验证的 [client_fetch_error] 与 next.js
问题描述
我正在使用 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
谁能帮我解决如何纠正它?
解决方案
您正面临此问题,因为您正在尝试将动态 API 路由添加到静态网站。
该文档对此有很好的解释。
为什么会发生此警告
exportPathMap 路径与 API 路由匹配。通过下一个导出静态导出 Next.js 应用程序会禁用 API 路由。
现在,很可能您没有exportPathMap
直接设置 a(尽管您可以在 中设置next.config.js
)。更有可能的是,您正在使用脚本中的额外export
命令构建应用程序- 这就是触发警告的原因。build
package.json
在静态 HTML 导出部分对此有更多解释:
此方法不支持 API 路由,因为它们无法预呈现为 HTML。
...在API 路由部分。
API 路由不能与
next export
好的,但是我该如何解决这个问题?
解决此问题的方法是使您的应用程序非静态(SSR 或 SSG)。最简单的方法是删除该export
命令,然后添加一个start
.
包.json:
"scripts": {
"build": "next build",
"start": "next start"
}
您需要确保该start
命令已运行 - 这可能因您的主机而异。
推荐阅读
- ios - iOS 中使用 Push Kit 的 Firebase 通知
- c# - 定义并获取 ASP.Net Core (Session) 列表
- javascript - 通过mongoose数据库中的数据进行查询
- c++ - CMake:为多库/二进制 C++ 项目中的常见标头添加 IDE 可见性
- python - 如何计算一个数据帧中的字符值并添加到另一个现有数据帧?
- ajax - 使用node/express动态加载网页,需要在同一页面上渲染
- html - css float 不显示右侧的 div
- spring - Spring JPA 与 JDBC
- acumatica - Acumatica - 以编程方式向 AP 账单和 AR 发票添加注释
- r - R - 如何删除重复项*而不*保留单个重复行?