המצב הוא כזה:
הצד לקוח שלי כתוב בReact יושב על פורט 8080 בכתובת localhost:8080.
הצד שרת שלי כתוב בNodeJS יושב על פורט 3000 בכתובת: localhost:3000.התקנתי passportjs ואני משתמש בו לבצע התחברות לאתר. כאשר אני מתחבר דרך הצד לקוח (פורט 8080) הוא עובד בשרת את שלה הauthenticate, אך בפועל שאני מריץ את isAuthenticate הוא מחזיר לי false.
כשאני עושה אותו הדבר דרך הצד שרת (פורט 3000) הוא מחזיר לי true ומראה שהמשתמש מחובר.
מה שקורה בעצם הוא שהAPI שולח cookie של session אבל הקליינט לא שולח את הcookie חזרה בפניות הבאות ולכן כל פניה לAPI הוא לא מכיר את הסשן של הפניה.
לפי בדיקה בpostman הדבר היחיד ששונה הוא origin בrequest header.
מישהו מבין וזה ויודע איך אפשר לטפל בבעיה? הבעיה היא באמת בשוני בין הפורטים?
העלתי את הקובץ api.js עם כל הקוד, רק לשנות את הסיומת.
https://rotter.name/User_files/nor/59940af705153a6d.doc