Node.js ialah sumber terbuka, persekitaran merentas platform untuk aplikasi sebelah pelayan. Aplikasi web berprestasi tinggi boleh dibina menggunakan Node.js. Dalam aplikasi web, selalunya perlu untuk berkongsi data antara permintaan HTTP yang berbeza. Untuk mencapai tujuan ini, anda boleh menggunakan Sesi.
Sesi ialah teknologi dalam aplikasi web yang digunakan untuk menyimpan pelbagai maklumat apabila pengguna mengakses aplikasi web. Prinsip Sesi adalah untuk menyimpan sekeping data pada bahagian pelayan Setiap kali pelanggan meminta pelayan, ia akan menyemak sama ada permintaan klien mengandungi ID Sesi Jika ya, data Sesi yang sepadan akan dikeluarkan dari pelayan untuk digunakan oleh aplikasi. Node.js juga menyediakan cara untuk menggunakan Sesi dalam aplikasi web: express-session
.
express-session
ialah perisian tengah yang berkongsi data antara permintaan HTTP yang berbeza melalui Sesi. Sebelum menggunakan perisian tengah ini, anda perlu memasangnya. Anda boleh menggunakan arahan npm untuk memasang:
npm install express-session
Selepas pemasangan berjaya, perkenalkan express-session
ke dalam aplikasi Node.js:
const session = require('express-session');
Seterusnya, anda perlu menetapkan beberapa parameter Sesi. express-session
Menyediakan beberapa parameter yang boleh ditetapkan semasa membuat Sesi.
Antaranya, secret
ialah parameter yang diperlukan, yang digunakan untuk menyulitkan ID Sesi. resave
Parameter menunjukkan sama ada untuk menyimpan semula data Sesi apabila Sesi belum diubah suai. saveUninitialized
Menunjukkan sama ada hendak menyimpan data Sesi apabila Sesi belum dimulakan. cookie
Parameter digunakan untuk menetapkan beberapa pilihan kuki Sesi.
app.use(session({ secret: 'mysecret', resave: false, saveUninitialized: false, cookie: { maxAge: 3600000, secure: false, httpOnly: true } }));
Selepas menambah kod di atas, anda boleh menggunakan Sesi. Dalam Node.js, data yang disimpan dalam Sesi boleh diakses melalui objek req. Data yang disimpan dalam Sesi boleh berupa sebarang jenis objek JavaScript.
app.get('/setSession', function(req, res) { req.session.username = 'Alice'; req.session.email = 'alice@example.com'; res.send('Session data is set'); }); app.get('/getSession', function(req, res) { const username = req.session.username; const email = req.session.email; res.send(`Session data is: username: ${username} email: ${email}`); });
Dalam kod di atas, pengendali laluan pertama menyimpan nama pengguna dan alamat e-mel dalam Sesi. Pengendali laluan kedua akan cuba mendapatkan nama pengguna dan alamat e-mel daripada Sesi dan menghantarnya kembali kepada pelanggan sebagai respons.
Selepas mengakses http://localhost:8080/setSession
dalam penyemak imbas, Sesi baharu akan dibuat pada bahagian pelayan, dan kemudian nama pengguna dan alamat e-mel akan disimpan dalam Sesi. Seterusnya, mengakses http://localhost:8080/getSession
akan mendapatkan semula data yang disimpan daripada Sesi dan menghantarnya kembali ke penyemak imbas sebagai respons. Dengan cara ini, fungsi perkongsian data antara permintaan HTTP yang berbeza direalisasikan.
Apabila menggunakan Sesi, anda perlu memberi perhatian kepada beberapa isu keselamatan. Apabila menggunakan Sesi, anda perlu memberi perhatian untuk mengelakkan serangan skrip merentas tapak (serangan XSS) dan rampasan Sesi. Beberapa langkah keselamatan termasuk:
Ringkasnya, menggunakan Sesi ialah teknologi yang sangat berguna semasa menulis aplikasi web, yang dapat merealisasikan fungsi perkongsian data antara permintaan HTTP yang berbeza. Dalam Node.js, anda boleh menggunakan perisian tengah express-session
untuk mengendalikan Sesi. Apabila menggunakan Sesi, anda perlu memberi perhatian untuk melindungi keselamatan data pengguna.
Atas ialah kandungan terperinci nodejs set sessionid. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!