Kad jūsu tīmekļa lietojumprogrammai ir "jāatceras" lietotāji, tā parasti izmanto vienu no diviem mehānismiem: sīkfailus vai sesijas. Sīkfails ir neliela pārlūkprogrammas krātuves vieta, kurā varat glabāt ar lietotāju saistītus datus, piemēram, meklēšanas preferences. Sesijas ļauj serverī saglabāt sensitīvu informāciju.

Uzziniet, kā iestatīt sesijas Express serverī, ko nodrošina Node.js.

Kas jums būs nepieciešams

Lai sekotu šai apmācībai, ir jāinstalē gan Node.js, gan npm. Jebkura jaunākā versija Node.js jānāk līdzi npm, pakotņu pārvaldnieks atkarību instalēšanai.

Lai instalētu Express un express-session, izmantosit npm. Šie ir rīki, kurus izmantosit, lai izveidotu tīmekļa serveri un sesiju.

Kas ir sesija pakalpojumā Node.js?

Sīkfails ir neliels fails, ko jūsu pārlūkprogramma izmanto datu glabāšanai. Varat izmantot sīkfailus, lai saglabātu nesensitīvus datus, piemēram, meklēšanas preferences.

Sīkdatnēs nevajadzētu glabāt sensitīvus datus (piemēram, lietotājvārdus un paroles). Kad jūsu pārlūkprogramma sūta sīkfailus, izmantojot HTTP, tie ir neaizsargāti pret hakeriem, kuri varētu tos pārtvert. Tie tiek saglabāti arī vienkārša teksta veidā jūsu datorā, lai hakeri varētu tos pārbaudīt un nozagt jūsu datus.

instagram viewer

Tā vietā, lai saglabātu sensitīvus datus kā sīkfailu klientā, jums tie jāsaglabā serverī. Tas pasargā to no ārpasaules.

Sesijas ļauj saglabāt sensitīvus datus, kas jūsu lietotnei ir nepieciešami, lai identificētu lietotāju. Piemēram, lietotājvārds, parole un e-pasts. Tie ir drošāki, jo dzīvo serverī, nevis klientā.

Ikreiz, kad jums ir dati, kurus vēlaties saglabāt visos pieprasījumos, saglabājiet tos servera pusē, izmantojot sesiju. Nākamajā sadaļā uzzināsit, kā izveidot sesiju.

Sesijas izveide Express serverī

Express ir populārs Node.js tīmekļa ietvars. Tas ļauj iestatīt tīmekļa servera lietojumprogrammu, kas klausās klientu pieprasījumus jūsu izvēlētajā porta numurā. Pateicoties ietvara nodrošinātajām API, varat izveidot API maršrutus, lietot starpprogrammatūru un pat savienot lietojumprogrammu ar datu bāzi.

1. Izveidojiet projektu Node.js

Izveidojiet pavisam jaunu mapi savam projektam, pēc tam palaidiet komandrindas rīku un kompaktdisku šajā mapē.

Pēc tam palaidiet šo komandu, lai inicializētu Node.js projektu:

npm init -y

Tas ģenerē failu package.json projekta saknes mapē ar noklusējuma iestatījumu. Fails package.json palaišanai npm skripti.

2. Instalējiet Express un ekspressesiju

Lai izveidotu tīmekļa servera lietojumprogrammu, izmantosit Express. Un ātrā sesija, lai izveidotu sesijas šajā servera lietojumprogrammā.

Terminālī palaidiet šo komandu, lai instalētu abas atkarības:

npm es ekspressesiju

Pēc abu pakotņu instalēšanas nākamais solis būtu izveidot serveri.

3. Izveidojiet sesijas lietotnē

Izveidojiet failu ar nosaukumu App.js sava projekta saknes mapē un importējiet atkarības:

konst izteikt = pieprasīt('izteikt')
konst sesija = pieprasīt('ekspress sesija')
lietotne = express ()

Pēc tam reģistrējiet sesijas starpprogrammatūru. Ielaidiet objektu ar noslēpums rekvizītu (sesijas ID sīkdatnes parakstīšanai) un sīkfailu.

app.use(
sesija({
noslēpums: "kāds noslēpums",
sīkfails: { maxAge: 30000 },
saglabāt Uninitializētu: viltus,
})
);

Šeit jūs iestatāt sesijas lielāko vecumu uz 30 sekundēm (30000 milisekundes). SaveUnitialized iestatīšana uz false ir būtiska, ja jums ir pieteikšanās sistēma. Ja to neizdarīsit, jūsu serveris ģenerēs jaunu sesijas ID katru reizi, kad lietotājs nosūtīs pieprasījumu.

Pēc tam izveidojiet pieteikšanās maršrutu, lai mainītu sesiju. Kad lietotājs sasniedz šo maršrutu, jūs sagaidāt, ka klients pieprasījuma pamattekstā nosūtīs lietotājvārdu un paroli. Vispirms piekļūstat šīm vērtībām un pārbaudiet, vai tās pastāv (un vai lietotājs ir autentificējies):

app.post("/Pieslēgties", (req, res) => {
konst { lietotājvārds, parole } = req.body;

ja (Lietotājvārds Parole) {
ja (req.session.authenticated) {
res.json (sesija);
} cits {
ja (parole "123") {
req.session.authenticated = taisnība;
req.session.user = { lietotājvārds };
res.json (req.session);
} cits {
res.status(403).json({ ziņa: "Slikti akreditācijas dati" });
}
}
} cits {
res.status(403).json({ ziņa: "Slikti akreditācijas dati" });
}
});

Ar pirmo if paziņojumu jūs veicat fiktīvu pārbaudi. Šī pārbaude ir paredzēta, lai nodrošinātu, ka jūs turpināt tikai tad, ja ir lietotājvārds un parole.

Pēc tam pārbaudiet, vai lietotājs jau ir autentificēts. Ja tā, nosūtiet sesiju atpakaļ klientam. Ja nē, iestatiet autentificēto rekvizītu uz True un saglabājiet lietotājvārdu sesijā. Pēc tam nosūtiet to atpakaļ klientam.

Izmantojot iepriekš minēto kodu, serveris atcerēsies katru lietotāju, kas nosūta serverim pieprasījumu. Tas ir tāpēc, ka viņi ir autentificējušies un sesijā ir saglabājuši unikālo informāciju (lietotājvārdu un paroli).

Sāciet savu serveri, pievienojot šādu kodu App.js apakšā:

app.listen(3000, () => {
konsole.log("Serveris darbojas portā 3000");
});

Lai pārbaudītu šo maršrutu, izmantojiet API klientu, lai nosūtītu pieprasījumu izveidotajam pieteikšanās maršrutam. Pieprasījuma pamattekstā noteikti nosūtiet lietotājvārdu un paroli. Lūk, kā jūsu API pieprasījums izskatītos, ja izmantojat Rest Client:

POSTĪT http://localhost: 3000/login HTTP/1.1
Satura veids: "aplikācija/json"
{ lietotājvārds: "Kingsley", parole: "123"}

Ja viss noritēs labi, jūs iegūsit šādu objektu:

{
"cepums": {
"originalMaxAge": 30000,
"Tikai http": taisnība,
"ceļš": "/"
},
"autentificēts": taisnība,
"lietotājs": {
"lietotājvārds": "Kingsley",
"parole": "123"
}
}

Ar šo kodu ir notikušas divas lietas. Pirmkārt, jūs esat autentificējies serverī. Otrkārt, sesijā tagad ir jūsu pieteikšanās informācija, tāpēc serveris tagad zina, kas jūs esat. Ikreiz, kad nosūtīsit jaunu pieprasījumu, tas jūs atcerēsies, līdz beigsies sesija un serveris to noņems.

Sesijas uzlabo lietotāja pieredzi

Sesijas ir būtiska Node.js lietojumprogrammu sastāvdaļa. Tas ir tāpēc, ka tie ļauj uzturēt mijiedarbības stāvokli daudzos pieprasījumos un atbildēs. Sesijas ir īpaši svarīgas lietojumprogrammām, kurās jums ir jāpiesakās.

Izmantojiet sesijas savā aizmugurprogrammā, lai sekotu lietotāja specifiskiem datiem. Šādu datu piemērs ir preces, kuras lietotājs ir pievienojis iepirkumu grozam.

Bez sesijām katram lietojumprogrammas lietotājam ir jāuztur atsevišķs datu veikals. Tas būtu neefektīvi un palielinātu pieteikuma sarežģītību.

Express.js vienkāršo sesijas, maršrutēšanu un daudz ko citu

Express.js ir vispopulārākā pašlaik izmantotā Node.js tīmekļa sistēma. Tas nodrošina daudzus rīkus un bibliotēkas aizmugurprogrammu izveidei, un ātrās sesijas bibliotēka ir tikai viena no tām.

Ja vēlaties izmantot Node.js aizmugursistēmas tīmekļa izstrādei, pārbaudiet Express.