Rumah  >  Artikel  >  hujung hadapan web  >  nodejs set sessionid

nodejs set sessionid

WBOY
WBOYasal
2023-05-18 09:55:07715semak imbas

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-sessionMenyediakan beberapa parameter yang boleh ditetapkan semasa membuat Sesi.

Antaranya, secret ialah parameter yang diperlukan, yang digunakan untuk menyulitkan ID Sesi. resaveParameter 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. cookieParameter 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:

  1. Gunakan protokol HTTPS untuk menyulitkan data sesi.
  2. Elakkan menyimpan data sensitif dalam Sesi.
  3. Pastikan bahawa Kuki Sesi hanya dihantar apabila menggunakan protokol HTTPS dengan menetapkan atribut selamat dalam pilihan kuki Sesi.
  4. Tetapkan atribut httpSahaja dalam pilihan kuki Sesi untuk menghalang kuki daripada diakses oleh skrip JavaScript.
  5. Tetapkan masa kemandirian ID Sesi dan jana semula ID Sesi dengan kerap untuk mengelakkan rampasan ID Sesi.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn