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

NextAuth集成Discord登录无法获取用户access token问题求助

问题定位

你的配置存在2个核心错误,导致回调逻辑完全不生效、字段取值错误:

  • 配置层级错误:callbacks、secret是NextAuth初始化的根级配置项,你错误将其写在了DiscordProvider的入参配置内部。NextAuth只会读取Provider下和OAuth厂商对接相关的配置(clientId、clientSecret、authorization这类),Provider内部写的callbacks、secret完全不会被加载,你定义的jwt、session回调根本没有注册到NextAuth的执行流程里,自然不会执行打印逻辑。
  • 字段名不匹配:就算回调正常执行,你在jwt回调里给token赋值的字段是accessToken,session回调里读取的却是token.access_token,字段名拼写不一致会直接取到undefined。
修正后完整配置

把callbacks、secret移动到和providers数组同级的根配置位置,同时修正字段名匹配问题:

import NextAuth from 'next-auth/next';
import DiscordProvider from 'next-auth/providers/discord';

export default NextAuth({
    secret: process.env.NEXTAUTH_SECRET,
    providers: [
        DiscordProvider({
            clientId: process.env.DISCORD_CLIENT_ID,
            clientSecret: process.env.DISCORD_CLIENT_SECRET,
            callbackUrl : process.env.NEXTAUTH_URL,
            authorization: {
                params: {
                    scope: 'identify email guilds applications.commands.permissions.update'
                }
            }
        }),
    ],
    callbacks: {
        async jwt({ token, account }){
            if (account) {
                token.accessToken = account.access_token
            }
            return token;
        },
        async session({ session, token }) {
            session.accessToken = token.accessToken
            console.log(session.accessToken);
            return session;
        }
    },
})
前端取值调整

你之前的前端代码只打印了session.user,accessToken是直接挂载在session根对象下的,不属于user字段,调整打印逻辑即可看到结果:

const { data: session, status } = useSession();
const user = session?.user;
console.log('用户信息:', user);
console.log('accessToken:', session?.accessToken);
注意事项
  • 修改[...nextauth].js配置后必须重启Next开发服务,新的配置才会生效
  • Discord开发者后台配置的重定向URI必须和服务端回调地址完全匹配,标准格式为${你的域名}/api/auth/callback/discord
  • 确保所有环境变量(DISCORD_CLIENT_ID、DISCORD_CLIENT_SECRET、NEXTAUTH_URL、NEXTAUTH_SECRET)都已正确注入到服务端运行环境

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:57:22