קורס Node.JS שיעור איך לבנות API מאובטח


זה נושא דיון מלווה לערך המקורי ב- https://www.tocode.co.il/bundles/nodejs/lessons/48-api

שלום ינון ערב טוב.
עשיתי את הל מה שלימדת בקורס וברוך השם הצלחתי, הסברים מעולים.
יש לי שאלה קטנה וחשובה: כרגע שאני מנסה להתחבר דרך האתר או אפילו ליצור משתמש חדש הוא לא נותן לי, בגלל שכאילו זה שדה שצריך טוקן כדי להשתמש בו א"כ איך אני נותן למשתמש להיכנס לאתר?
רק לציין שאני לא משתמש ב ejs אלא ב- vue.
עוד עניין אמרת שתסביר איך אפשר לנתק משתמש מהאתר אולי זה כלול במה שעשינו אם כן אשמח להסבר קצר…
בתודה מראש…

הי @shimki

אני מראה בסרט איך לקבל טוקן (בחלק ״הנפקת טוקן למשתמש מחובר״)

אתה כן צריך לעבור איזשהו חיבור דרך Passport כדי שתהיה מסוגל להנפיק את הטוקן, ורק אחרי זה להשתמש בו בשביל ה API. צריך לראות איך ליישם ב Vue את מה שהראיתי בסרט בתוך ERB.

עוד אפשרות אם אתה מסתבך זה לקבל טוקן דרך פרוטוקול 0auth2. יש את הספריה הזאת:

ול Vue יש את הספריה הזאת:

חיבור שתיהן יחד יכול לייצר מנגנון דומה למה שאני עשיתי עם ה ERB אבל לאפליקציות vue

תודה רבה ינון בוקר טוב.
כנראה שלא הסברתי את עצמי מספיק טוב.
כנראה בגלל שאני משתמש בפריימורק חיצוני כל בקשה לגשת לשרת, כולל הרישום לאתר לא עובד והוא כותב שצריך להנפיק טוקן ובגלל זה לא ניתן להירשם לאתר, וכמובן גם לא ניתן לקבל טוקן.
בעצם העניין הוא שכל השרת שרוי בתוך נעילה שמחייבת טוקן וכל פניה אליו אפילו אם זה כדי להירשם לאתר נחסמת.
האם יש לזה פתרון, איך נועלים רק בקשות מסויימות ולא את כל הבקשות?
מקווה שהסברתי את עצמי ברור…
אשמח מאד לקבל מענה ותודה רבה רבה מראש.

כתבת ״הוא כותב״ - אבל לא הבנתי מי זה הוא
אני מניח שאתה מדבר על קוד ה Node.JS שלנו,
ואם כן אז זה לא הוא שכותב אלא אנחנו :slight_smile:

הקוד דורש טוקן כדי לדעת מי המשתמש הפעיל, ומאפשר להתחבר רק מתוך מסך ההתחברות (שכתוב ב ERB)
אם אתה משנה את מסך ההתחברות מ ERB ל Vue אתה תצטרך לזכור להשתמש באותו מנגנון תקשורת כדי להנפיק את הטוקן קודם, ואז רק להשתמש בטוקן כדי לגשת ל API

“הוא כותב” ברור שהכוונה לדפדפן בשם node :smile:
מה זה בדיוק ERB הכוונה ל ejs, זה בדיוק הנקודה שאני לא יודע איך ניתן להפריד את מסך ההתחברות מהserver הרי הכל מתנהל דרכו?
(מבחינת המנגנון, כל הטפסים שלי נמצאים ב vue, הserver משמש רק כמתווך).
וגם לא ממש הבנתי איפה הטוקן הזה נשמר, (הרי זה לא ב cookie)?
תודה רבה