首页  >  问答  >  正文

更新next-auth会话对象以响应用户的补丁请求更新

<p>我在互联网上搜索了很久,但没有找到答案。有一些方法可以解决这个问题,但是当我尝试时,它们对我没有起作用。 所以,当用户登录并创建会话时,我如何在通过API后端的补丁请求更新用户后更新该会话对象中的新数据。 谢谢大家的回复和时间。</p> <p>我尝试了各种在网上找到的“技巧”,对一些人有效,但对我无效。 我希望在调用补丁并更新用户数据后更新会话对象。</p>
P粉748218846P粉748218846393 天前504

全部回复(1)我来回复

  • P粉481815897

    P粉4818158972023-08-27 09:17:05

    所以我在Medium上写了一篇关于如何修复这个问题的文章:如何使用useSession() Hook在NextAuth中更新用户会话数据

    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}>
          更新用户
        </button>
      );
    }

    回复
    0
  • 取消回复