Next.js реквизиты на стороне сервера не загружаются вовремя

#reactjs #next.js #supabase

Вопрос:

Я использую 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;
 

Комментарии:

1. Вы пробовали пройти user в getServerSideProps ответ props ?

2. @juliomalves Да, это не имело значения

3. И я предполагаю, что вы изменили Home компонент, чтобы ожидать user поддержки, т. Е. function Home({ user }) { ? Так что вы можете получить доступ к нему оттуда.

4. @juliomalves Да, это не влияет на то, передается ли опора на самом деле или нет