1. 程式人生 > >小程式跳轉 H5 時 cookie 值處理問題

小程式跳轉 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。