鍍金池/ 問答/C/ 同一瀏覽器下不同頁簽登錄不同的用戶,每個頁簽中cookie都是一樣的嗎?

同一瀏覽器下不同頁簽登錄不同的用戶,每個頁簽中cookie都是一樣的嗎?

當(dāng)前系統(tǒng)為“學(xué)員管理系統(tǒng)”,學(xué)員是按校區(qū)來管理的。
  1. 需求:要將當(dāng)前所查看的“校區(qū)”給緩存下來,當(dāng)下次刷新系統(tǒng)再進(jìn)入時,還是查看刷新之前那些校區(qū)的數(shù)據(jù)。我現(xiàn)在是使用的cookie來緩存的當(dāng)前所查看的校區(qū),當(dāng)刷新系統(tǒng)時判斷cookie有沒有值,有則取cookie中的值。

  2. 操作流程:當(dāng)我在Chrome下打開兩個不同的頁簽,
    第一個頁簽使用“admin”登錄該系統(tǒng),查看a、b兩個校區(qū)的數(shù)據(jù);
    第二個頁簽使用“張小三”登錄該系統(tǒng),查看c、d兩個校區(qū)的數(shù)據(jù);

  3. 問題描述:兩個頁簽中保存的cookie都是一樣的。

  4. 期望:每個頁簽對應(yīng)的cookie都不一樣,想請教各位有沒有比較好的解決方案?

在線等...

回答
編輯回答
萌吟

期望:每個頁簽對應(yīng)的cookie都不一樣,想請教各位有沒有比較好的解決方案?

你 cookie 的名字隨機(jī),就每個都不一樣了啊。(但這樣有什么意義呢)

錯誤的前提下,去尋找方法沒有意義的。你的出發(fā)點(diǎn)就是錯的。對于我見過的所有瀏覽器,像 cookie ,本地緩存這些狀態(tài),是共享的。(隱身模式除外)

你硬要實(shí)現(xiàn),多用戶同時登錄狀態(tài)(像 Gmail 那種),不同標(biāo)簽頁狀態(tài)還隔離,也不是不行,先需要設(shè)置一些前提,比如,如果定義“同一個標(biāo)簽頁”之類的。然后,前后端共同設(shè)計一些機(jī)制,是可以做到的。不過,根據(jù)你問的問題,這個對你來說就太難了。還是先把基礎(chǔ)的一些東西搞明白吧。

2017年6月16日 12:01
編輯回答
假灑脫

cookie在一個瀏覽器下同一個域名下是全部共享一致的,和頁簽沒任何關(guān)系的。
如果要達(dá)到你說的效果,只能用兩個瀏覽器,或者在瀏覽器上安裝多個session的插件。
還有一個技巧,chrome的隱私模式和普通模式也是可以多個session的

2017年8月8日 19:37
編輯回答
念初

不是應(yīng)該由服務(wù)器通過區(qū)分請求來進(jìn)行setcookie才對么

2018年3月25日 22:59
編輯回答
風(fēng)畔

這個需求比較蛋疼,特別是第2的不同標(biāo)簽頁不同用戶
盡管如此,還是可以實(shí)現(xiàn)的.
方法:url帶上token以便區(qū)分用戶.cookie值累加,例如以|分割,這樣就完美實(shí)現(xiàn)了.
比如:

A登錄后為:.com/?sid=3f4044be7153afec9c234dab8ef11d28
B登錄后為:.com/?sid=2e02f73a987b65242ab0860e5b9a214e
cookie:
uname=A|B

蛋疼在瀏覽器登錄上,一般的習(xí)慣是A已經(jīng)登錄了,登錄頁也就不再了,B需要A退出后再登.
除非,你的登錄頁也帶上token.
有一個現(xiàn)成的demo可供觀察:登錄兩個QQ,從QQ進(jìn)入郵箱后,你就會發(fā)現(xiàn)不同標(biāo)簽頁不同的QQ用戶.

2018年5月10日 07:41