【发布时间】:2022-12-11 12:30:15
【问题描述】:
我想更新用户的数据,但是在更新用户的数据之后如何使更改也出现在会话中?
[...nextauth].js
callbacks: {
jwt: ({ token, user }) => {
if (user) {
token.id = user.id;
token.name = user.name;
token.surname = user.surname;
token.email = user.email;
token.role = user.role;
}
// Here, check the token validity date
if (token.tokenExpiration < Date.now()) {
// Call the endpoint where you handle the token refresh for a user
const user = axios.post(
`${process.env.API_URL}/auth/authentication/refresh`,
{
refreshToken: token.refreshToken,
}
);
// Check for the result and update the data accordingly
return { ...token, ...user };
}
return token;
},
session: ({ session, token }) => {
if (token) {
session.id = token.id;
session.name = token.name;
session.surname = token.surname;
session.email = token.email;
session.role = token.role;
}
return session;
},
},
secret: process.env.SECRET_KEY,
jwt: {
secret: process.env.SECRET_KEY,
encryption: true,
maxAge: 5 * 60 * 1000,
},
api/用户/index.js这里我更新了用户内容,我应该怎么做才能更新会话对象细节
const updateUser = await prisma.user.update({
where: {
email: 'test@email.io',
},
data: {
name: 'User',
},
})
会话对象
name : Company
email : test@email.io
expires : 2022-04-26T18:44:36.424Z
id : 2
name : Company
surname : Surname
email : test@email.io
role : 2
【问题讨论】:
-
我也有完全一样的问题。你做了什么来实现这一目标?这让我发疯
标签: session next.js prisma next-auth