Penyampaian semula tanpa henti apabila menggunakan Next-Auth dalam NextJS
<p>这是我的“/app/api/auth/[...nextauth]/route.js”</p>
<pre class="brush:php;toolbar:false;">import NextAuth daripada "next-auth/next";
import GoogleProvider daripada "next-auth/providers/google";
eksport const authOptions = {
pembekal: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
}),
],
};
pengendali const = NextAuth(authOptions);
eksport { pengendali sebagai GET, pengendali sebagai POST };</pre>
<p>和sessionProvider.js</p>
<pre class="brush:php;toolbar:false;">"gunakan klien";
import React daripada "react";
import { SessionProvider } daripada "next-auth/react";
const Sessionprovider = ({ kanak-kanak }) => {
kembalikan <SessionProvider>{children}</SessionProvider>;
};
eksport lalai Sessionprovider;</pre>
<p>我用这个将子元素包装在 Layout.js 中</p>
<pre class="brush:php;toolbar:false;"><html lang="ms">
<body className={inter.className}>
<Sessionprovider>{children}</Sessionprovider>
</badan>
</html></pre>
<p>这是我的 page.js</p>
<pre class="brush:php;toolbar:false;">"gunakan klien";
import { getServerSession } daripada "next-auth";
import { signIn, signOut, useSession } daripada "next-auth/react";
import { authOptions } daripada "./api/auth/[...nextauth]/route";
eksport fungsi async lalai Laman Utama() {
const { data: session, status } = useSession();
console.log(session);
const _signInWithGoogle = async () => {
tunggu log Masuk("google");
};
kembali (
<div className="flex justify-center items-center flex-col gap-3 p-5">
<h1 className="font-semibold text-lg">Halaman Utama</h1>
{sesi ? (
<butang
onClick={() => log keluar()}
className="p-1 bg-biru-400 teks-putih fon-semibol bulat-md tuding:bg-biru-500"
>
Log Keluar
</butang>
) : (
<butang
onClick={_signInWithGoogle}
className="p-1 bg-biru-400 teks-putih fon-semibol bulat-md tuding:bg-biru-500"
>
Log Masuk
</butang>
)}
</div>
);
}</pre>
<p>Apabila saya menjalankan apl, ia terus memaparkan semula. Sebarang bantuan mengenai perkara ini amat dihargai. Memandangkan konsol memaparkan objek pengguna, ia kekal dalam komponen log masuk. </p>