Saya telah membaca passport.js
info dan sampel selama dua hari, tetapi saya tidak yakin setelah itu saya melakukan semua proses otentikasi.
Bagaimana saya tahu jika saya sedang masuk, misalnya, saya akan memiliki bilah navigasi dengan tombol masuk atau keluar, apakah ada variabel seperti kode di bawah ini?
if (login)
<button>logout</button>
else
<button>login</button>
node.js
express
passport.js
RMontes13
sumber
sumber
app.get
,app.post
dll. Jika Anda memerlukan fungsionalitas yang berbeda, maka Anda harus menjelaskannya secara rinci dalam pertanyaan Anda serta apa yang ingin Anda capai.Jika Anda ingin menggunakannya di template Anda karena sampel kode Anda sepertinya menunjukkan bahwa Anda dapat membuat beberapa middleware seperti ini:
Letakkan kode itu di suatu tempat setelah Anda menyiapkan paspor.
Dan kemudian gunakan di template Anda (contoh swig)
sumber
app.use(function(req,res,next){
res.locals.login = req.isAuthenticated();
res.locals.user = req.user;
next();
});
isAuthenticated
memberikan false di permintaan berikutnya. Bisakah Anda membantu menjawab pertanyaan ini stackoverflow.com/questions/42842171/…Hal ini tidak secara eksplisit didokumentasikan tetapi ada
isAuthenticated()
metode yang dimasukkan ke dalamreq
oleh paspor .Dapat digunakan sebagai berikut,
sumber
Saya sedang mencari solusi tersebut dan menemukan halaman ini. Pertanyaannya adalah bagaimana cara memeriksa status login di sisi klien.
Setelah login saya menyembunyikan tombol Login dan menampilkan tombol logout. Pada halaman refresh saya kembali melihat tombol login, bukan tombol logout. Satu-satunya solusi adalah menyimpan item di sessionStorage jika Anda menggunakan session (dan localStorage jika Anda menggunakan JWT). Hapus item ini saat Anda keluar. Kemudian di setiap pemuatan halaman periksa item sessionStorage ini dan lakukan yang sesuai.
sumber
gunakan kode di bawah ini di dalam app.get () atau router.get ()
sumber
Pertanyaan bagus, saya mengalami beberapa masalah saat mencoba menerapkan sesuatu seperti ini, ketika ada permintaan yang tidak diautentikasi, setang melewatkan blok if jika variabel res.locals mengembalikan nilai yang salah. Untuk mengatasi masalah ini, Anda perlu menyiapkan middleware di file app.js Anda untuk membuat req.user tersedia secara global di aplikasi Anda. Seperti ..
});
Di file header Anda, Anda dapat melakukan pemeriksaan ini untuk pengguna yang diautentikasi dan menampilkan konten yang sesuai seperti itu ..
sumber