小程序跳轉 H5 時 cookie 值處理問題


小程序使用 <web-view></web-view> 內嵌 H5,當跳轉至 H5 后,校驗用戶的登錄狀態是最重要的。

在做手中的項目 b.xx.com 時,需要調用另一個域名下(a.xx.com)的公共地址接口,兩處都需要校驗用戶的登錄狀態。

最初的做法是:

let cookie='aaaaaa2222fghhhh',
    domain = '.xxx.com';
document.cookie = `sid=${cookie};domain=${domain};path=/`;

這樣寫發現在 a.xx.com 中獲取不到當前 cookie:經排查發現是因為 a.xx.com 服務器沒有開啟允許跨域訪問,開啟之后 cookie 就可以拿到了!

在后續的聯調中發現,凡是  a.xx.com 下的接口,訪問時 request header 里都會帶兩個參數名相同但是值不同的cookie,導致登錄校驗失敗的情況頻繁出現,經過接口請求分析發現是因為 a.xx.com 中服務器中設置的 domain 是 a.xx.com ,而 b.xx.com 中設置的 .xxx.com。domain不一致,導致接口的 response 里會自動帶上cookie,所以會出現兩個參數名相同的 cookie。

解決方法:將  a.xx.com 的 domain 也設置為 .xxx.com。


免責聲明!

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



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