next.js 13 useSession()在刷新时不检索会话信息[重复]

ukdjmx9f  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(97)

此问题已在此处有答案

Next.JS app freezing in browser when adding an input field(1个答案)
9天前关闭。
我正在使用nextjs 13制作电子商务网站克隆,在其订单页面中,我调用useSession(来自next-auth/react)来查看用户是否登录。第一次我通过链接导航访问页面时没有问题,但当我刷新或直接访问页面时,它处于加载状态。
订单页:

"use client";
  ...
const Orders = async () => {
  const { data: session } = useSession();
  
    ...

字符串
根布局页面:

export default async function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        <AuthProvider>
          <BasketProvider>{children}</BasketProvider>
        </AuthProvider>
      </body>
    </html>
  );
}


供应商:

"use client";
import { SessionProvider } from "next-auth/react";

const AuthProvider = ({ children }: { children: React.ReactNode }) => {
  return <SessionProvider>{children}</SessionProvider>;
};

export default AuthProvider;


x1c 0d1x的数据


wdebmtf2

wdebmtf21#

希望这篇文章能帮到你

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

export async function getServerSideProps(context) {
  const session = await getSession(context);

  if (!session) {
    return {
      redirect: {
        destination: '/login',
        permanent: false,
      },
    };
  }

  return {
    props: { session },
  };
}

const Orders = ({ session }) => {
  ...
};

export default Orders;

字符串

相关问题