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

Next Auth提示‘client_id is required’,.env配置读取异常求助

问题描述

用NextAuth做Google登录集成时遇到了奇怪的问题:直接把Google客户端ID和密钥写死在代码里能正常运行,但通过process.env读取.env文件里的对应变量时,就会弹出client_id is required的错误。

相关配置

[...nextauth].js代码

import NextAuth from "next-auth"
import GoogleProvider from "next-auth/providers/google"

export default NextAuth({
    providers: [
        GoogleProvider({
            clientId: process.env.GOOGLE_CLIENT_ID,
            clientSecret: process.env.GOOGLE_CLIENT_SECRET
        })
    ],
    secret: process.env.JWT_SECRET
})

.env文件内容

GOOGLE_CLIENT_ID = qwertclientid
GOOGLE_CLIENT_SECRET = qwertyclientsecret

NEXTAUTH_URL=http://localhost:3000

JWT_SECRET=qwertysecret

报错信息

error: {
  message: 'client_id is required',
  providerId: 'google',
  message: 'client_id is required'
}
解决方案
  • 去掉.env变量的空格:你现在.env里的变量是GOOGLE_CLIENT_ID = qwertclientid,等号两边的空格会导致读取到的变量值带无效空格,直接改成GOOGLE_CLIENT_ID=qwertclientid(等号前后都不要留空格)。
  • 重启开发服务器:修改.env文件后必须重启Next.js的开发服务,不然新的环境变量不会被加载生效。
  • 确认.env文件位置:保证.env文件放在项目根目录(和package.json同级),别丢到src或其他子文件夹里,Next.js只会自动读取根目录的.env文件。
  • 验证变量加载状态:可以在[...nextauth].js里临时加一行console.log(process.env.GOOGLE_CLIENT_ID),重启服务后看控制台输出,要是输出undefined或者带空格的字符串,就说明变量没加载正确。

内容的提问来源于stack exchange,提问作者Robin Banks

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:05:29