Kui teie veebirakendus peab kasutajaid meeles pidama, kasutab see tavaliselt ühte kahest mehhanismist: küpsiseid või seansse. Küpsis on väike salvestusala brauseris, kus saate hoida kasutajaga seotud andmeid, näiteks otsingueelistused. Seansid võimaldavad teil selle asemel tundlikku teavet serverisse salvestada.

Avastage, kuidas seadistada seansse Node.js-i toel töötavas Express-serveris.

Mida vajate

Selle õpetuse järgimiseks peab teil olema installitud nii Node.js kui ka npm. Mis tahes uusim versioon Node.js peaks kaasa tulema npm, paketihaldur sõltuvuste installimiseks.

Expressi ja ekspressseansi installimiseks kasutate npm-i. Need on tööriistad, mida kasutate veebiserveri ja seansi loomiseks.

Mis on Node.js-i seanss?

Küpsis on väike fail, mida teie brauser kasutab andmete salvestamiseks. Küpsiseid saate kasutada mittetundlike andmete, näiteks otsingueelistuste salvestamiseks.

Te ei tohiks küpsistesse salvestada tundlikke andmeid (nt kasutajanimesid ja paroole). Kui teie brauser saadab küpsiseid HTTP kaudu, on need haavatavad häkkerite ees, kes võivad neid pealt kuulata. Need salvestatakse ka teie arvutisse lihttekstina, nii et häkkerid võivad neid kontrollida ja teie andmeid varastada.

instagram viewer

Selle asemel, et salvestada tundlikke andmeid kliendile küpsisena, peaksite need salvestama serverisse. See hoiab seda välismaailma eest kaitstuna.

Seansid võimaldavad teil salvestada tundlikke andmeid, mida teie rakendus vajab kasutaja tuvastamiseks. Näiteks kasutajanimi, parool ja e-post. Need on turvalisemad, kuna elavad serveris, mitte kliendis.

Iga kord, kui teil on andmeid, mida soovite taotluste vahel säilitada, salvestage need seansi abil serveri poolele. Järgmisest jaotisest saate teada, kuidas seanssi luua.

Seansi loomine ekspressserveris

Express on Node.js-i populaarne veebiraamistik. See võimaldab teil seadistada veebiserveri rakenduse, mis kuulab teie valitud pordinumbril kliendi päringuid. Tänu raamistiku pakutavatele API-dele saate luua API marsruute, rakendada vahevara ja isegi ühendada rakenduse andmebaasiga.

1. Looge projekt Node.js

Looge oma projekti jaoks täiesti uus kaust, seejärel käivitage käsurea tööriist ja CD sellesse kausta.

Järgmisena käivitage Node.js projekti lähtestamiseks järgmine käsk:

npm init -y

See loob projekti juurkausta vaikehäälestusega faili package.json. Fail package.json käitamiseks npm skriptid.

2. Installige Express ja ekspressseanss

Veebiserveri rakenduse loomiseks kasutate Expressi. Ja kiirseanss selles serverirakenduses seansside loomiseks.

Mõlema sõltuvuse installimiseks käivitage terminalis järgmine käsk:

npm i ekspress-seanss

Pärast mõlema paketi installimist oleks järgmine samm serveri loomine.

3. Loo rakenduses seansse

Looge oma projekti juurkausta fail nimega App.js ja importige sõltuvused:

konst väljendada = nõuda('väljendama')
konst seanss = nõuda("ekspress-seanss")
rakendus = express()

Järgmisena registreerige seansi vahevara. Sisestage objekt koos saladus atribuut (sessiooni ID küpsise allkirjastamiseks) ja küpsis.

app.use(
session({
saladus: "mingi saladus",
küpsis: { maxAge: 30000 },
salvesta Uninicialized: vale,
})
);

Siin määrate seansi suurimaks vanuseks 30 sekundit (30000 millisekundid). Kui teil on sisselogimissüsteem, on saveUnitializedi määramine valeks. Kui te seda ei tee, genereerib teie server uue seansi ID iga kord, kui kasutaja saadab päringu.

Järgmisena looge seansi muutmiseks sisselogimismarsruut. Kui kasutaja sellele marsruudile jõuab, eeldate, et klient saadab päringu kehasse kasutajanime ja parooli. Esiteks pääsete neile väärtustele juurde ja kontrollite, kas need on olemas (ja kas kasutaja on autentinud):

app.post("/Logi sisse", (req, res) => {
konst { kasutajanimi, parool } = req.body;

kui (kasutajanimi Parool) {
kui (req.session.authenticated) {
res.json (seanss);
} muidu {
kui (parool "123") {
req.session.authenticated = tõsi;
req.session.user = { kasutajanimi };
res.json (req.session);
} muidu {
res.status(403).json({ sõnum: "Halvad volikirjad" });
}
}
} muidu {
res.status(403).json({ sõnum: "Halvad volikirjad" });
}
});

Esimese if-lausega teete näiva kontrolli. Selle kontrolli eesmärk on tagada, et jätkate ainult siis, kui kasutajanimi ja parool on olemas.

Järgmisena kontrollite, kas kasutaja on juba autentitud. Kui jah, saatke seanss kliendile tagasi. Kui ei, määrake autentitud atribuudi väärtuseks Tõene ja salvestage kasutajanimi seansile. Seejärel saatke see kliendile tagasi.

Ülaltoodud koodiga jätab server meelde iga kasutaja, kes saadab serverile päringu. Seda seetõttu, et nad on autentinud ja nende kordumatud üksikasjad (kasutajanimi ja parool) on seansi ajal salvestatud.

Käivitage oma server, lisades rakenduse App.js allossa järgmise koodi:

app.listen(3000, () => {
konsool.log("Server töötab pordil 3000");
});

Selle marsruudi testimiseks kasutage API klienti, et saata taotlus loodud sisselogimismarsruudile. Kindlasti saatke päringu sisusse kasutajanimi ja parool. Rest Clienti kasutamisel näeks teie API taotlus välja järgmiselt.

POSTITA http://localhost: 3000/login HTTP/1.1
Sisu tüüp: "rakendus/json"
{ kasutajanimi: "Kingsley", parool: "123"}

Kui kõik läheb hästi, saate järgmise objekti:

{
"küpsis": {
"originaalMaxAge": 30000,
"Ainult http": tõsi,
"tee": "/"
},
"autentitud": tõsi,
"kasutaja": {
"kasutajanimi": "Kingsley",
"parool": "123"
}
}

Selle koodiga on juhtunud kaks asja. Esiteks olete serveris autentinud. Teiseks on seansil nüüd teie sisselogimisandmed, nii et server teab nüüd, kes te olete. Iga kord, kui saadate uue päringu, jätab see teid meelde, kuni seanss aegub ja server selle eemaldab.

Seansid parandavad kasutajakogemust

Seansid on Node.js-i rakenduste oluline osa. Seda seetõttu, et need võimaldavad teil säilitada suhtlusolekut paljude päringute ja vastuste vahel. Seansid on eriti olulised rakenduste jaoks, mis nõuavad sisselogimist.

Kasutage oma taustarakenduses seansse, et jälgida kasutajaspetsiifilisi andmeid. Selliste andmete näide on kaubad, mille kasutaja on ostukorvi lisanud.

Ilma seanssideta peaksite oma rakenduses iga kasutaja jaoks pidama eraldi andmesalvesti. See oleks ebaefektiivne ja suurendaks rakenduse keerukust.

Express.js lihtsustab seansse, marsruutimist ja palju muud

Express.js on praegu kõige populaarsem Node.js veebiraamistik. See pakub palju tööriistu ja teeke taustarakenduste loomiseks ning kiirseansi teek on vaid üks neist.

Kui soovite kasutada Node.js-i taustaveebi arendamiseks, vaadake Expressi.