2

我正在使用 supabase 并尝试在服务器端加载用户会话。如果您刷新页面,它会捕获有用户但不是在第一次加载时(例如,当来自魔术链接时)。我怎样才能确保它在他页面之前加载?

项目清单

这是页面:

import router from "next/router";
import { supabase } from "../utils/supabaseClient";

function Home() {
  const user = supabase.auth.user()
  if (user){
    //router.push('/admin') failsafe, not ideal
  }
  return (
    <div className="min-h-screen bg-elkblue dark:bg-dark-pri">
      marketing
    </div>
  );
}

export async function getServerSideProps({ req }) {
  const { user } = await supabase.auth.api.getUserByCookie(req);
  if (user) {
    return {
      redirect: {
        destination: "/admin",
        permanent: false,
      },
    };
  }

  return {
    props: {  }, // will be passed to the page component as props
  };
}

export default Home;
4

0 回答 0