Memaparkan komponen berasaskan Next.js secara bersyarat: Bagaimana untuk bergantung pada sama ada permintaan itu datang daripada pengguna Firebase yang disahkan?
P粉616111038
2023-08-26 14:39:52
<p><strong>Nota: </strong>Saya menggunakan Next.js 13 dan direktori <code>app/</code> </p>
<hr />
<p>Saya sedang belajar Firebase dan Next.js dan saya cuba memahami cara menyelesaikan masalah mainan. Katakan saya mempunyai <code>Home()</code>Component</p>
<p><strong><code>/app/page.jsx</code></strong></p>
<pre class="brush:php;toolbar:false;">eksport fungsi lalai Laman Utama() {
kembali (
<utama>
<h1>Hello World</h1>
<p>Hanya pengguna yang disahkan boleh melihat teks ini</p>
</utama>
)
}</pre>
<p>Matlamat saya adalah untuk menjadikan semua dalam <kod><p>...</p></code> berdasarkan sama ada pengguna yang meminta halaman itu adalah pengguna yang log masuk. Firebase menjadikan bahagian pelayan komponen ini menggunakan JWT, Next.js 13, jadi saya percaya ini boleh dilakukan, tetapi saya tidak dapat mengetahui cara melakukannya. </p>
<p>Saya tahu tentang onAuthStateChanged, tetapi setakat yang saya tahu ini hanya boleh digunakan pada bahagian klien. (Pengguna Savvy masih boleh melihat kandungan yang dilindungi ini.) Bagaimanakah cara melindungi kandungan ini <em>sebelah pelayan</em>? </p>
Untuk menyemak sama ada pengguna telah log masuk, anda boleh menggunakan kaedah 'onAuthStateChanged'.
Simpan maklumat ini dalam keadaan komponen, atau gunakannya untuk membuat bahagian komponen secara bersyarat.
Untuk melaksanakan pengesahan pengguna di bahagian pelayan, Next.js menyediakan 'getServerSideProps' untuk mendapatkan status pengesahan pengguna
Penyelesaian terkini:
Buat laluan sebelah pelayan
Kod pelanggan