Saya memiliki aplikasi simpul. Ketika pelanggan merutekan ke ('/ login') dan dengan kredensial yang valid, saya membuat token JWT dengan beberapa waktu kedaluwarsa dan mengarahkan ke halaman berikutnya. Dan jika pengguna mencoba mengakses rute apa pun misalnya:('/home') langsung setelah login, jika token belum kedaluwarsa, ia seharusnya dapat melakukan rute secara langsung. Jika token kedaluwarsa, saya perlu merutekan ke ('/ login').
Namun saat ini berfungsi sebagian, jika token tersedia dia dapat langsung melakukan rute ke ('/home). Tetapi ketika saya membuka rute yang sama di browser/jendela penyamaran yang sama sekali berbeda, dia masih dapat melakukan rute dan mengambil token sebelumnya. Yang tidak seharusnya dan dia harus dialihkan ke ('/ login'). Bagaimana kita bisa melakukan skenario ini.
Di bawah ini adalah kode saya yang saya coba
const SECRET = 'server secret';
var token;
router.post('/auth', passport.authenticate(
'local', {
session: false
}),generateToken, inserttoken,respond);
function generateToken(req, res, next) {
token = jwt.sign({
id: req.user.id,
},SECRET, {
expiresIn: 60
});
req.token = token;
next();
}
//In inserttoken() Iam inserting token value in db.
router.get('/home', function(req, res){
jwt.verify(token, 'server secret', function(err, decoded) {
if (err) {
console.log("token expired");
res.redirect('/');
}
else{
res.render('index.html');
}
});
});
Bantuan apa pun dihargai. Terima kasih sebelumnya!