簡體   English   中英

Javascript 獲取不發送 JWT httponly cookie 到.Net Core 6 API

[英]Javascript Fetch not sending JWT httponly cookie to .Net Core 6 API

我一直致力於實現 JWT 和 refresh_tokens。 最新的嘗試使用存儲在 httpOnly cookie 中的 refresh_tokens。 我的 API 是 .Net Core 6 API,使用 Swagger 和 Postman,似乎一切正常。 我在瀏覽器 devtools 應用程序選項卡中看到了 refresh_token cookie。 在 Swagger 和 Postman 中,當我運行我的 refresh_token 端點時,它使用 httpContextAccessor 獲取 Request.Cookies,沒問題。 我在請求標頭中看到一個帶有我的 refresh_token 的 cookie。 現在,我嘗試在運行實時服務器的 VSCode 中復制這項工作時遇到了麻煩。 我正在使用 vanilla JS 前端和 Fetch。 我的登錄代碼工作正常:

fetch(loginUrl, {
   method: "POST",
   credentials: "include",
   body: JSON.stringify(authBody),
   headers: {
      "Content-Type": "application/json; charset=utf-8"
});

瀏覽器開發工具顯示我的 cookie 沒問題。 我嘗試調用我的 refresh_token 端點但是不發送 cookie。 我在請求標頭中沒有看到 cookie。 我一直在嘗試上述獲取代碼的一些變體,但 cookie 不會 go。現在我唯一能想到的是 cors 問題...我的 API 從 VS2022 運行,位於 https://localhost: 7121,我的 VSCode 實時服務器是 http://localhost:5500。

在 API 方面,我嘗試使用以下方法設置 cookie:

HttpOnly = true,
Secure = true,
Expires = expireTime,

我也嘗試過包含 SameSite 的一些變體,但運氣不佳。 非常感謝任何建議或幫助!

好的,看起來我的 cookie 可以正常工作了……似乎 cookie 的“SameSite”屬性搞砸了。 我剛剛注意到 Devtools 的“網絡”選項卡中的一個復選框顯示已過濾掉請求 cookies,它表明 SameSite 嚴格阻止了 cookie。 我在我的 API 中將它設置為無,看起來 cookie 現在已發送...現在唯一的問題是我返回的響應是不透明的,所以我沒有從 API 獲得我的新令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM