express-session לא עובד?
-
תגובה: קישור בין פניית סוקט לפניית API (socket io).
המסקנה שעלתה לי משם היא שexpress-session זו דרך הישר. אלא שמעולם לא השתמשתי בו, והשימוש הראשון כנראה ממש לא מוצלח.
הוא כביכול עובד, אבל תכל'ס לא שומר את העוגיה, וממילא הכל בטל.ניסיתי את כל הפתרונות שהצלחתי להעלות על דעתי מתוך התיעוד ומתוך גוגל: להרחיב ליתר בטחון את הגדרות cors והגבלות דומיין או גיל של העוגיות ושאר ענייני אבטחה (הפרונט ב8080 והשרת בפורט אחר). גארנישט.
הפעלה על מצב דיבג לא שיפרה את המצב. כך זה נראה מחדש בכל בקשה:
[0] Wed, 06 Apr 2022 13:48:10 GMT express-session no SID sent, generating session [0] Wed, 06 Apr 2022 13:48:10 GMT express-session saving XBEbCg3Oq2GKYFj6X8ZTaz5IBId91EwT
עם ID חדש כמובן.
מה אני מפספס?
-
@yossiz אמר בexpress-session לא עובד?:
@davidnead בדקת בכלי המפתחים בדפדפן אם העוגייה נשלחת?
איך היא יכולה להישלח אם היא לא קיימת? העוגיה לא נוצרת בשום שלב.
-
@yossiz אמר בexpress-session לא עובד?:
@davidnead יש לך קוד בסיסי להראות? אחרת איך נדע מה פספסת? בתשובה של השרת אין הידר של קוקי?
צודק, הסתכלתי כעת ואני רואה שהקוקי מגיע מהשרת.
אז זה אומר שהבעיה היא לא בשרת אלא בקליינט, מסיבה לא ידועה כלשהי העוגיה פשוט לא נשמרת.
מי בעצם התהליך שאחראי לשמור את העוגיה? זה לא הדפדפן עצמו כהתייחסות אוטומטית לקבלת עוגיה מהשרת? למיטב הבנתי לא אמור להיות לזה כל קשר כלשהו לaxsois. -
@davidnead אמר בexpress-session לא עובד?:
הפרונט ב8080 והשרת בפורט אחר
הקוקי אמור להיות על הפורט/דומיין של השרת
-
@yossiz אמר בexpress-session לא עובד?:
@davidnead אמר בexpress-session לא עובד?:
הפרונט ב8080 והשרת בפורט אחר
הקוקי אמור להיות על הפורט/דומיין של השרת
ההגדרה
="none"sameSite
לא אמורה לאפשר את זה? -
@davidnead אמר בexpress-session לא עובד?:
@yossiz אמר בexpress-session לא עובד?:
@davidnead אמר בexpress-session לא עובד?:
הפרונט ב8080 והשרת בפורט אחר
הקוקי אמור להיות על הפורט/דומיין של השרת
ההגדרה
="none"sameSite
לא אמורה לאפשר את זה?אני רואה בתיעוד שזה דורש יחד עם הגדרה של
secure
, אבל זו הגדרה שנתמכת רק עם HTTPS. זה יוצר מצב שלא אפשרי לפתח מלוקלהוסט, זה לא הגיוני. ככל שאני מבין זו רק הגדרה של לאן העוגיה תישלח מהדפדפן, אבל לא אמור להפריע לדפדפן לשמור עוגיה שהתקבלה מהשרת.כמובן שכל הcors מאופשר.
-
טוב, מצאתי את הבעיה, מקוה שזה יועיל לעוד מישהו כאן.
הגדרת הcors אכן אמורה לטפל בזה, ואין צורך לגעת בהגדרות העוגיות, אבל בתנאי שמאופשר דומיין ספציפי. לשם כך הייתי צריך להגדיר את הcors בשרת:origin: "http://localhost:8080", credentials: true,
ובקליינט
withCredentials: true
עד עכשיו השתמשתי בallow "*" בשרת במצב פיתוח ובלי credentials, זה נותן לי יותר גמישות. מתברר שעבור מנגנון העוגיות זה לא מספק, למרות שככל שהבנתי מהתיעוד הוא לא אמור לעשות בעיות בלוקלהוסט.