我已经在Next.js项目中实现了Next-auth,并且我有这个JWT和会话:
export const { signIn, signOut, auth } = NextAuth({
...authConfig,
providers: [
CredentialsProvider({
async authorize(credentials) {
try {
const user = await login(credentials);
return user;
} catch (error) {
return null;
}
},
}),
],
callbacks: {
async jwt({ token, user }: { token: any; user: any }) {
if (user) {
token.id = (user as CustomUser).id;
token.username = (user as CustomUser).username;
token.img = (user as CustomUser).img;
token.isAdmin = (user as CustomUser).isAdmin;
}
return token;
},
async session({ session, token }: { session: any; token: any }) {
if (token) {
session.user = {
name: token.username,
image: token.img,
id: token.id,
isAdmin: token.isAdmin,
};
}
return session;
},
},
});
我也在session中添加了isAdmin
,以便我可以在代码中使用它.
const session = await auth();
console.log(session?.user?.isAdmin)
我收到了这个错误消息:
Property 'isAdmin' does not exist on type '{ name?: string | null | undefined; email?: string | null | undefined; image?: string | null | undefined; }'.ts(2339)
谁能告诉我如何在会话中添加更多数据?
这是我的用户:
{
_id: new ObjectId('random'),
username: 'admin',
email: 'admin@gmail.com',
password: '',
isAdmin: true,
isActive: true,
phone: '',
address: 'no ',
}