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

Next-auth集成GitHub登录报错:access_token需为非空字符串

解决NextAuth v5 GitHub登录报错:OperationProcessingError: "response" body "access_token" property must be a non-empty string

问题原因

报错核心是NextAuth无法从GitHub OAuth接口获取有效access_token,根源有两点:

  • NextAuth v5的GitHub Provider需要显式配置客户端凭证,你当前代码仅导入Provider但未传入clientId和clientSecret
  • 可能存在环境变量命名不符合v5规范的问题(v5默认环境变量前缀为AUTH_,和v4的无前缀规则不同)

解决方案

1. 配置正确的环境变量(.env.local)

在项目根目录的.env.local文件中添加符合v5规范的GitHub OAuth凭证:

AUTH_GITHUB_ID=你的GitHub Client ID
AUTH_GITHUB_SECRET=你的GitHub Client Secret
NEXTAUTH_URL=http://localhost:3000 # 开发环境用此值,生产环境替换为实际域名

2. 显式配置GitHub Provider(修改auth.js)

更新auth.js代码,将GitHub Provider配置为带凭证的对象:

import NextAuth from "next-auth";
import GitHub from "next-auth/providers/github";

export const { signIn, signOut, auth, handlers } = NextAuth({
  providers: [
    GitHub({
      clientId: process.env.AUTH_GITHUB_ID,
      clientSecret: process.env.AUTH_GITHUB_SECRET,
    }),
  ],
});

3. 验证GitHub OAuth应用的回调URL

登录GitHub OAuth应用管理页面,确保回调URL设置正确:

  • 开发环境:http://localhost:3000/api/auth/callback/github
  • 生产环境:https://你的域名/api/auth/callback/github

额外检查

  • 重启Next.js开发服务器,确保环境变量生效
  • 确认GitHub OAuth应用已勾选至少read:user基础权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:02:40