typescript - Tunnistetietojen tarjoajan istunto palauttaa aina null create-t3-stackin (NextJS, NextAuth) kanssa


Joten yritän saada kirjautumissivun toimimaan sähköpostilla ja salasanalla tietokannasta, ja kun klikkaan lähettääkseni arvot, istunto on aina null. Tässä mitä teen:

CredentialsProvider({
      name: "Credentials",
      credentials: {},
      async authorize(credentials: any) {
        //check user
        const user: any = await prisma.user.findUnique({
          where: {
            email: credentials.email,
          },
        });

        if (!user) {
          throw new Error("No user found");
        }
        console.log("user credentials", user);
        const checkPassword = await compare(
          credentials.password,
          user?.password
        );
        console.log("user?.password", user?.password);

        if (!checkPassword || user.email !== credentials.email) {
          throw new Error("Password or Email dont match");
        }

        return user;
      },
    }),
  ],
  // Include user.id on session
  callbacks: {
    session({ session, user }) {
      if (session.user) {
        session.user.id = user.id;
      }
      return session;
    },
  },
  session: {
    strategy: "jwt",
    },
  },
  jwt: {
    secret: "test",
  },
  secret: "test",
  // pages: {
  //   signIn: "/",
  //   newUser: "/signin",

  //   signOut: "/signout",
  //   error: '/error'
  // },

Joten kirjautumissivullani kutsun signIn-metodia:

async function onSubmitLoginValues(values: LoginValuesProps): Promise<any> {
    const result = await signIn("credentials", {
      email: values?.email,
      password: values?.password,
      redirect: false,
      callbackUrl: "/",
    });
    console.log("result", result);
    if (result?.ok) router.push("/");
    return result;
  }

tulos palauttaa: virhe: tyhjä ok: tosi tila: 200 url: "http://localhost:3000/"

On getServerSideProps yritin kutsua sitä kahdella eri tavalla:

export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
const session = await getServerAuthSession(ctx);
if (!session) {
  return {
    redirect: { destination: "/signin", permanent: false },
  };
}
return {
  props: {
    session,
  },
};

//OR
console.log("ctx", ctx);
const response = await fetch("http://localhost:3000/api/auth", {
  method: "GET",
  credentials: "include",
  //@ts-ignore
  headers: {
    Cookie: ctx.req.headers.cookie,
  },
});
console.log("RESPOSNDE", response.json());

if (!response) {
  return {
    redirect: { destination: "/signin", permanent: false },
  };
}
const data = await response.json();
return { props: { data } };
};

Tutkin asiaa, mutta mikään näistä lähestymistavoista ei toiminut minulle. Jos joku on kohdannut samanlaisen ongelman, olisin erittäin kiitollinen, koska olen vianmäärityksessä ollut tässä eilisestä lähtien 😦