כאשר יישום האינטרנט שלך צריך "לזכור" משתמשים, הוא משתמש בדרך כלל בשני מנגנונים: עוגיות או הפעלות. קובץ Cookie הוא אזור אחסון קטן בדפדפן שבו אתה יכול לשמור נתונים הקשורים למשתמש כמו העדפות חיפוש, למשל. הפעלות מאפשרות לך לאחסן מידע רגיש בשרת במקום זאת.
גלה כיצד להגדיר הפעלות בשרת Express המופעל על ידי Node.js.
מה אתה צריך
כדי לעקוב אחר הדרכה זו, עליך להתקין גם את Node.js וגם את npm. כל גרסה עדכנית של Node.js צריך לבוא עם npm, מנהל חבילות להתקנת תלות.
תשתמש ב-npm כדי להתקין Express ו-express-session. אלו הם הכלים שבהם תשתמש ליצירת שרת האינטרנט וההפעלה.
מה זה הפעלה ב-Node.js?
קובץ Cookie הוא קובץ קטן שהדפדפן שלך משתמש בו כדי לאחסן נתונים. אתה יכול להשתמש בקובצי Cookie כדי לאחסן נתונים לא רגישים כמו העדפות חיפוש.
אין לאחסן נתונים רגישים (כגון שמות משתמש וסיסמאות) בעוגיות. כאשר הדפדפן שלך שולח קובצי Cookie דרך HTTP, הם פגיעים להאקרים שאולי יוכלו ליירט אותם. הם גם מאוחסנים בטקסט רגיל במחשב שלך, כך שהאקרים יכולים לבדוק אותם ולגנוב את הנתונים שלך.
במקום לשמור נתונים רגישים כקובץ cookie בלקוח, עליך לאחסן אותם בשרת. זה שומר עליו מוגן מהעולם החיצון.
הפעלות מאפשרות לך לאחסן נתונים רגישים שהאפליקציה שלך צריכה כדי לזהות את המשתמש. דוגמאות לכך הן שם משתמש, סיסמה ואימייל. הם מאובטחים יותר מכיוון שהם חיים בשרת, לא בלקוח.
בכל פעם שיש לך נתונים שברצונך להתמיד בבקשות, שמור אותם בצד השרת באמצעות הפעלה. תלמד כיצד ליצור הפעלה בסעיף הבא.
יצירת הפעלה בשרת אקספרס
Express היא מסגרת אינטרנט פופולרית עבור Node.js. זה מאפשר לך להגדיר יישום שרת אינטרנט שמאזין לבקשות הלקוח במספר היציאה שבחרת. ניתן ליצור מסלולי API, ליישם תוכנת ביניים ואפילו לחבר את האפליקציה למסד נתונים, הכל הודות ל-API שמספקת ה-framework.
1. צור פרויקט Node.js
צור תיקיה חדשה לגמרי עבור הפרויקט שלך, ולאחר מכן הפעל את כלי שורת הפקודה ואת התקליטור לתוך התיקיה הזו.
לאחר מכן, הפעל את הפקודה הבאה כדי לאתחל פרויקט Node.js:
npm init -y
זה יוצר קובץ package.json בתיקיית השורש של הפרויקט עם הגדרת ברירת המחדל. הקובץ package.json להפעלה סקריפטים של npm.
2. התקן את Express ו-Express-Session
תשתמש ב-Express כדי ליצור את יישום שרת האינטרנט. ו-Express-Session ליצירת הפעלות ביישום השרת הזה.
בטרמינל, הפעל את הפקודה הבאה כדי להתקין את שתי התלות:
npm i express-session
לאחר התקנת שתי החבילות, השלב הבא יהיה יצירת השרת.
3. צור הפעלות באפליקציה
צור קובץ בשם App.js בתיקיית השורש של הפרויקט שלך וייבא את התלות:
const express = לִדרוֹשׁ('אֶקְסְפּרֶס')
const מפגש = לִדרוֹשׁ('סשן אקספרס')
app = express()
לאחר מכן, רשום את תוכנת האמצע של הפגישה. העבירו חפץ עם ה סוֹד נכס (לחתימה על קובץ ה-sessionID cookie) ועל ה-cookie.
app.use(
מוֹשָׁב({
סוֹד: "סוד כלשהו",
עוגייה: { maxAge: 30000 },
saveUninitialized: שֶׁקֶר,
})
);
כאן אתה מגדיר את הגיל הגדול ביותר של הפגישה ל-30 שניות (30000 אלפיות השנייה). הגדרת saveUnitialized ל-false היא חיונית אם יש לך מערכת התחברות. אם לא תעשה זאת, השרת שלך יפיק מזהה הפעלה חדש בכל פעם שהמשתמש שולח בקשה.
לאחר מכן, צור מסלול התחברות כדי לשנות את ההפעלה. כאשר משתמש מגיע למסלול זה, אתה מצפה מהלקוח לשלוח את שם המשתמש והסיסמה בגוף הבקשה. ראשית, אתה ניגש לערכים האלה ובודק אם הם קיימים (ואם המשתמש אומת):
app.post("/התחברות", (req, res) => {
const { שם משתמש, סיסמה } = req.body;
אם (שם משתמש סיסמא) {
אם (req.session.authenticated) {
res.json (הפעלה);
} אַחֵר {
אם (סיסמה "123") {
req.session.authenticated = נָכוֹן;
req.session.user = { שם משתמש };
res.json (req.session);
} אַחֵר {
res.status(403).json({ הודעה: "אישורים גרועים" });
}
}
} אַחֵר {
res.status(403).json({ הודעה: "אישורים גרועים" });
}
});
עם הצהרת if הראשון, אתה מבצע בדיקת דמה. בדיקה זו נועדה להבטיח שתמשיך רק אם שם המשתמש והסיסמה קיימים.
לאחר מכן, אתה בודק אם המשתמש כבר מאומת. אם כן, שלח את הפגישה חזרה ללקוח. אם לא, הגדר את המאפיין המאומת ל-true ושמור את שם המשתמש בהפעלה. לאחר מכן שלח אותו בחזרה ללקוח.
עם הקוד לעיל, השרת יזכור כל משתמש ששולח בקשה לשרת. הסיבה לכך היא שהם אומתו והפרטים הייחודיים שלהם (שם משתמש וסיסמה) נשמרו בסשן.
הפעל את השרת שלך על ידי הוספת הקוד הבא בתחתית App.js:
app.listen(3000, () => {
לְנַחֵם.עֵץ("שרת פועל ביציאה 3000");
});
כדי לבדוק את המסלול הזה, השתמש בלקוח API כדי לשלוח בקשה למסלול ההתחברות שיצרת. הקפידו לשלוח את שם המשתמש והסיסמה בגוף הבקשה. כך תיראה בקשת ה-API שלך אם תשתמש ב- Rest Client:
פרסם http://localhost: 3000/login HTTP/1.1
סוג תוכן: "application/json"
{ שם משתמש: "קינגסלי", סיסמה: "123"}
אם הכל ילך כשורה, תקבל את האובייקט הבא:
{
"עוגייה": {
"מקורי MaxAge": 30000,
"http בלבד": נָכוֹן,
"נָתִיב": "/"
},
"מְאוּמָת": נָכוֹן,
"מִשׁתַמֵשׁ": {
"שם משתמש": "קינגסלי",
"סיסמה": "123"
}
}
עם הקוד הזה קרו שני דברים. ראשית, ביצעת אימות בשרת. שנית, להפעלה יש כעת את פרטי הכניסה שלך, כך שהשרת יודע כעת מי אתה. בכל פעם שתשלח בקשה חדשה, הוא יזכור אותך עד שההפעלה יפוג והשרת יסיר אותה.
הפעלות משפרות את חווית המשתמש
הפעלות הן חלק חיוני מיישומי Node.js. הסיבה לכך היא שהם מאפשרים לך לשמור על מצב של אינטראקציה על פני בקשות ותגובות רבות. הפעלות חשובות במיוחד עבור יישומים הדורשים כניסה.
השתמש בהפעלות ביישום העורפי שלך כדי לעקוב אחר נתונים ספציפיים למשתמש. דוגמה לנתונים כאלה היא הפריטים שהמשתמש שלך הוסיף לעגלת קניות.
ללא הפעלות, תצטרך לשמור על מאגר נתונים נפרד עבור כל משתמש באפליקציה שלך. זה יהיה לא יעיל ויגדיל את מורכבות היישום.
Express.js מפשט פעילויות באתר, ניתוב ועוד
Express.js היא מסגרת האינטרנט הפופולרית ביותר של Node.js שנמצאת כיום בשימוש. הוא מספק כלים וספריות רבות ליצירת יישומי קצה, וספריית הפעלות אקספרס היא רק אחד מהם.
אם ברצונך להשתמש ב-Node.js לפיתוח אתרים עורפי, בדוק את Express.