Rendu non-stop lors de l'utilisation de Next-Auth dans NextJS
P粉811329034
2023-09-05 11:08:49
<p>这是我的“/app/api/auth/[...nextauth]/route.js”</p>
<pre class="brush:php;toolbar:false;">importer NextAuth depuis "next-auth/next" ;
importer GoogleProvider depuis "next-auth/providers/google" ;
exporter const authOptions = {
fournisseurs: [
Fournisseur Google({
ID client : process.env.GOOGLE_CLIENT_ID,
clientSecret : process.env.GOOGLE_CLIENT_SECRET,
}),
],
} ;
gestionnaire const = NextAuth (authOptions);
export { gestionnaire en tant que GET, gestionnaire en tant que POST };</pre>
<p> et sessionProvider.js</p>
<pre class="brush:php;toolbar:false;">"utiliser le client";
importer React depuis « react » ;
importer {SessionProvider} depuis "next-auth/react" ;
const Sessionprovider = ({ enfants }) => {
return <SessionProvider>{children}</SessionProvider>;
} ;
exporter le fournisseur de session par défaut;</pre>
<p>我用这个将子元素包装在 Layout.js 中</p>
<pre class="brush:php;toolbar:false;"><html lang="fr">
<body className={inter.className}>
<Sessionprovider>{enfants}</Sessionprovider>
</corps>
</html></pre>
<p>这是我的 page.js</p>
<pre class="brush:php;toolbar:false;">"utiliser le client";
importer {getServerSession} depuis "next-auth" ;
importer { signIn, signOut, useSession } depuis "next-auth/react" ;
importer { authOptions } depuis "./api/auth/[...nextauth]/route" ;
exporter la fonction asynchrone par défaut Home() {
const { données : session, statut } = useSession();
console.log(session);
const _signInWithGoogle = async () => {
attendre la connexion("google");
} ;
retour (
<div className="flex justifier-centre éléments-centre flex-col écart-3 p-5">
<h1 className="font-semibold text-lg">Page d'accueil</h1>
{session ? (
<bouton
onClick={() => se déconnecter()}
className = "p-1 bg-blue-400 texte-blanc police-semibold arrondi-md survol : bg-blue-500"
>
Se déconnecter
</bouton>
) : (
<bouton
onClick={_signInWithGoogle}
className = "p-1 bg-blue-400 texte-blanc police-semibold arrondi-md survol : bg-blue-500"
>
Se connecter
</bouton>
)}
</div>
);
}</pré>
<p>Lorsque j'exécute l'application, le rendu continue. Toute aide à ce sujet serait grandement appréciée. Puisque la console affiche l'objet utilisateur, il reste dans le composant de connexion. </p>
Vous devez supprimer
async
du composant client.https://github.com/vercel/next.js/issues/48822