Rendu conditionnel des composants basés sur Next.js : comment dépendre si la demande provient d'un utilisateur Firebase authentifié ?
P粉616111038
2023-08-26 14:39:52
<p><strong>Remarque : </strong>J'utilise Next.js 13 et le répertoire <code>app/</code> </p>
<heure />
<p>J'apprends Firebase et Next.js et j'essaie de comprendre comment résoudre un problème de jouet. Disons que j'ai un <code>Home()</code>Component</p>
<p><strong><code>/app/page.jsx</code></strong></p>
<pre class="brush:php;toolbar:false;">exporter la fonction par défaut Home() {
retour (
<principal>
<h1>Bonjour tout le monde</h1>
<p>Seuls les utilisateurs authentifiés peuvent voir ce texte</p>
</principal>
)
}</pré>
<p>Mon objectif est de tout restituer de manière conditionnelle dans <code><p>...</p></code> selon que l'utilisateur qui demande la page est ou non un utilisateur connecté. Firebase restitue ce composant côté serveur à l'aide de JWT, Next.js 13, donc je pense que cela est possible, mais je n'arrive pas à comprendre comment le faire. </p>
<p>Je connais onAuthStateChanged, mais pour autant que je sache, cela ne peut être utilisé que côté client. (Les utilisateurs avertis peuvent toujours afficher ce contenu protégé.) Comment puis-je protéger ce contenu <em>côté serveur</em> ? </p>
Pour vérifier si l'utilisateur est connecté, vous pouvez utiliser la méthode 'onAuthStateChanged'.
Stockez ces informations dans l'état du composant ou utilisez-les pour restituer conditionnellement des parties du composant.
Pour effectuer l'authentification de l'utilisateur côté serveur, Next.js fournit 'getServerSideProps' pour obtenir le statut d'authentification de l'utilisateur
Solution mise à jour :
Créer une route côté serveur
Code client