netcore 版本升級 導致的cookie驗證失敗


排查了兩天的問題,本來都是運行正常的cookie驗證,突然不好用了,服務器獲取不到cookie信息。

我確實是升級了.netcore sdk,之前是2.2.102,后來升級成了2.2.107,一開始並沒有意識到直接卸載新版本進行調試,

只是想看看問題出在哪?

首先是打印出來服務器段寫入的cookie信息:

1         "Set-Cookie": "[.AspNetCore.loginvalidate=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/, .AspNetCore.loginvalidate=xxxxxxx; expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none]",

沒看出什么問題,然后我在HttpContext.SignInAsync 方法下面又自己偽造了一個cookie信息寫入,

HttpContext.Response.Cookies.Append(".AspNetCore.loginvalidate", "xxxxx"),注意xxx是真實的登錄信息,我拷貝過來的,這次竟然登錄成功了,問題

就應該出在后面的參數里 

expires=Tue, 03 Dec 2019 13:58:33 GMT; path=/; samesite=none
最后經過調試發現有samesite=none 就會出問題,但是cookie信息也不能靠手動去編輯,最后我把新版本的sdk刪掉,然后重啟,再回寫的cookie信息就沒有
samesite=none,兩個sdk版本對cookie的處理有了差異。

問題又來了,加上
samesite=none 其實並不應該有問題,本身已經說明了不進行samesite的限制,問題還是出現在終端調用的代碼上,因為用PC端進行登錄就一直沒有問題,
而我的手機端使用的是uniapp的 uni.request進行api調用,android的手機cookie信息存在
samesite=none就無法通過cookie驗證,而ios又不存在這個問題,是不是uniapp的一個坑,回頭我得去提一下issue,先記錄這些


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM