1
我拼命地嘗試讓會話cookie在我的環境中工作,但目前還沒有運氣。在CORS環境中沒有發送會話Cookie
我的後端是一個節點/ Express應用程序,在端口3000上運行CORS是這樣啓用:
const corsOptions = {
origin: "http://127.0.0.1:4300",
allowedHeaders: [ "Origin", "X-Requested-With", "Content-Type", "Accept", "Authorization", "x-xsrf-token" ],
credentials: true
};
if (isDebug) {
corsOptions.maxAge = 1;
}
app.use(cors(corsOptions));
我使用登錄快遞會話和護照。會話配置是這樣的:
const options = {
secret: '...',
cookie: { httpOnly: true }
};
app.use(session(options));
的前端是一個角2 SPA,在端口4300上運行。當我從我的快遞服務的服務器前端,按預期工作的一切。但是,如果沒有,我遇到以下隱晦的問題:
登錄路由返回帶有會話ID的cookie。但是對後端的下一個請求是以不同的會話ID發送的?!我不知道,這個不同的會話ID可能來自哪裏。特別是因爲會話cookie被標記爲僅限HTTP。
HTTP的請求如下發送:
const response = this.http.get(url, { withCredentials: true });
我試過如下:
- 確認在第三方Cookie被允許在瀏覽器=>這是罰款。
- 試圖將httpOnly設置爲false =>沒有運氣。
- 用cookie域進行實驗:將其設置爲後端的地址 - 沒有運氣。然後到前端的地址 - 也沒有工作。
- 清除瀏覽器和cookie緩存,試用Google Chrome和Edge。沒什麼幫助。
有沒有人有想法難題的哪個部分丟失?
非常感謝, 史蒂芬