cari

Rumah  >  Soal Jawab  >  teks badan

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>
P粉811329034P粉811329034451 hari yang lalu582

membalas semua(1)saya akan balas

  • P粉828463673

    P粉8284636732023-09-06 00:06:41

    Anda perlu mengeluarkan async daripada komponen pelanggan.

    "use client";
    
    export default function Home() {
    }
    

    https://github.com/vercel/next.js/issues/48822

    balas
    0
  • Batalbalas