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

Next Auth回调中user与account对象为何未定义?

问题排查与解决方法

1. Spotify授权URL配置错误

检查LOGIN_URL是否符合Spotify授权码流程要求,必须包含response_type=code参数,正确格式示例:

const LOGIN_URL = "https://accounts.spotify.com/authorize?response_type=code&scope=user-read-private user-read-email";

如果缺少response_type=code,NextAuth无法获取授权码,也就无法拿到account相关信息。

2. 环境变量使用不当

clientId和clientSecret不应使用NEXT_PUBLIC_前缀,这会把敏感的clientSecret暴露给前端。改为普通环境变量:

SpotifyProvider({
  clientId: process.env.SPOTIFY_CLIENT_ID,
  clientSecret: process.env.SPOTIFY_CLIENT_SECRET,
  authorization: LOGIN_URL
})

确保变量在.env.local中正确配置,且未暴露到客户端。

3. accessToken字段拼写错误

代码里写的account.access_Token是错误的,Spotify返回的字段是access_token(下划线后为小写t),修正为:

accessToken: account.access_token,

这个拼写错误会直接导致token中的accessToken值为undefined,进而session中也无法获取该值。

4. jwt回调执行时机误解

jwt回调并非每次都会传入account和user参数,只有用户首次授权登录时这两个参数才会存在。后续请求session时,jwt回调只会传入token参数,此时account和user为undefined是正常情况,不要在这类场景下依赖这两个参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:23:09