我设法使用新的用户数据更新我的会话服务器端,但是在将其分配给 [...nextauth.js] 中的会话对象后,我的会话客户端仍然是旧的。如果我使用它,它不会刷新getSession()。
此代码适用于后端:
callbacks.session = async function session({ session, token }) {
// we can fetch info from back end here to add it to the session
session.user = token.user;
session.jti = token.jti;
// If user is logged, we refresh his session
if (token?.user?.id) {
const url = routes.api.entities.shop.get.byId.build(token?.user?.id);
let apiResp = await axios.get(url, {});
session.user = { ...apiResp.data };
token.user = { ...apiResp.data };
}
return session;
};
Run Code Online (Sandbox Code Playgroud)
如何刷新前端的会话?