我使用NextAuth来登录discord提供程序,我需要将userID添加到会话对象中。为此,我使用了会话回调,但用户对象未定义。当我尝试将userID添加到会话对象中时,我得到了如下错误:
[next-auth][错误][JWT_SESSION_ERROR] https://next-auth.js.org/errors#jwt_session_error无法读取未定义的属性(阅读'id')
实际上,用户对象似乎未定义,但我没有任何解决方案。
export default NextAuth({
providers: [
DiscordProvider({
clientId: process.env.DISCORD_CLIENT_ID,
clientSecret: process.env.DISCORD_CLIENT_SECRET,
authorization: { params: { scope: 'identify' } }
})
],
session: {
jwt: true
},
jwt: {
secret: process.env.JWT_SECRET
},
callbacks: {
async session({session, user}) {
session.user.id = user.id
return session
},
async jwt(token) {
return token
}
}
})
2条答案
按热度按时间f0brbegy1#
你可以这样做
vc9ivgsu2#
您可以在您的回调中这样做:-
并且不要忘记在回调之前执行的函数中返回用户,否则它将告诉undefined。