vue 項目中踩過的坑

1.不同域名之間cookies跨域問題(單點登陸)

在做項目規劃的時候沒有注意cookies共享;
前後臺項目需要共享用戶登陸狀態發現不同域名下cookies不能共享
cookies又個domain屬性;給cookies

export function cookiesSet(name, value) {
  return Cookies.set(name, value, { domain: '域名.com', path: '/' })
}

1、Cookie的屬性

屬性名 描述
name Cookie的名稱,Cookie一旦創建,名稱便不可更改
value Cookie的值,如果值爲Unicode字符,需要爲字符編碼。如果爲二進制數據,則需要使用BASE64編碼
maxAge Cookie失效的時間,單位秒。如果爲整數,則該Cookie在maxAge秒後失效。如果爲負數,該Cookie爲臨時Cookie,關閉瀏覽器即失效,瀏覽器也不會以任何形式保存該Cookie。如果爲0,表示刪除該Cookie。默認爲-1。
secure 該Cookie是否僅被使用安全協議傳輸。安全協議。安全協議有HTTPS,SSL等,在網絡上傳輸數據之前先將數據加密。默認爲false。
path Cookie的使用路徑。如果設置爲“/sessionWeb/”,則只有contextPath爲“/sessionWeb”的程序可以訪問該Cookie。如果設置爲“/”,則本域名下contextPath都可以訪問該Cookie。注意最後一個字符必須爲“/”。
domain 可以訪問該Cookie的域名。如果設置爲“.google.com”,則所有以“google.com”結尾的域名都可以訪問該Cookie。注意第一個字符必須爲“.”。
comment 該Cookie的用處說明,瀏覽器顯示Cookie信息的時候顯示該說明。
version Cookie使用的版本號。0表示遵循Netscape的Cookie規範,1表示遵循W3C的RFC 2109規範
例如:

document.cookie = "username=1XXXXXX;path=/;domain=.yXXXXX.com"

601571816146_.pic.jpg
2.所謂的單點登錄
是指用戶在一個站點如www.yxxx.com登錄後切換到另一個站點console.yxxx.com時也自動 被console的Server判斷爲已經登錄,反過來,只要用戶在console.yxxx.com登出後,切換到 www.yxxxx.com時後www的Server也會判斷到這一用戶已經登出。

3.Cookie的Domain屬性
我們重點說一下這個Domain屬性。一般在實現單點登錄的時候會經常用到這個屬性,通過在父級域設置Cookie,然後在各個子級域拿到存在父級域中的Cookie值。比如剛纔設置的username屬性,在yXXX.com下同樣可以訪問到,用戶不用重新登錄就可以拿到第一次登錄進來時候的用戶信息,因爲這些用戶信息都是存在父級域".yxxxx.com"下面,其他頁面也可以拿到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章