通过补丁请求更新用户后更新下一个身份验证会话对象

Kri*_*šić 5 rest reactjs next.js next-auth

我一直在互联网上寻找答案,但没有任何结果。有一些关于此的黑客,但一旦我尝试它们,它们对我不起作用。

因此,既然用户登录并创建了会话,那么在通过 API 后端的补丁请求更新用户后,如何使用新数据更新该会话对象。

我在网络上尝试了各种“黑客”,这些“黑客”对某些人有效,但对我无效。我想在调用补丁并更新用户数据后更新会话对象

Bri*_*ode 2

因此,我在中号How to Update User Session Data in NextAuth using the useSession() Hook 上发表了一篇有关如何解决此问题的文章

import { useSession } from 'next-auth/client';

export default function UserInfo() {
  const { data: session, update } = useSession();

  const handleUpdateUser = async () => {
    const newSession = {
      ...session,
      user: {
        ...session?.user,
        email: "someone@example.com"
      },
    };

    await update(newSession);
  };

  return (
    <button onClick={handleUpdateUser}>
      Update User
    </button>
  );
}
Run Code Online (Sandbox Code Playgroud)