不同域名共用一套登錄登出,cookie domain 設置


最近公司做了三個系統,分別放在三個不同的域名下,想要共用同一套登入登出功能,實現讓用戶感覺仿佛在使用同一套系統,無縫操作。

三個系統且稱為 A, B, C。

A 部署在主域名下,假如叫做 zhuyuming.com

B 部署在它的子域名下,假如叫做 b.zhuyuming.com

C 同B,c.zhuyuming.com

我們采用cookie攜帶用戶token的方式,將用戶登錄后,后端返回的token放在 zhuyuming.com下。

所以,A直接可以讀取cookie,B 和 C 站點可以看到cookie 的domain 為 .zhuyuming.com,直接拿到 jwt, 它的cookie name 值為 jwt

但是當需要登出的時候,刪除cookie,必須要連帶它的domain一起刪除。

兩種實現方法:

  如果系統是用vue寫的,我用的是 vue-cookie ,寫法是:

    this.$cookie.delete('jwt', { domain: '.zhuyuming.com' });

  如果是原生js或者,可以使用如下方式:

    document.cookie = "jwt=; expires=Mon, 11 Nov 2011 01:01:01 GMT; domain=zhuyuming.com;path=/" 

    這里稍微解釋一下,domain 可以設置它的父域名及自身域名,如果省略domain,默認為當前域名。

    expires 需要是GMT格式的時間,只要是設置已經過去了的時間就可以刪除這條cookie。

    path 不能省略,會造成重名cookie重復設置,而做不到清空想清空的cookie。

 

關於如何操作cookie的一個博客https://www.cnblogs.com/maderlzp/p/7843365.html


免責聲明!

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



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