zoukankan      html  css  js  c++  java
  • 不同域名共用一套登录登出,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

  • 相关阅读:
    Swift
    ios中沙盒
    Mac下安装apk(命令形式)
    iOS 保存异常日志
    android sliding menu
    iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)
    iOS应用崩溃日志分析
    iOS 推送
    iOS 修改textholder的颜色
    iOS 7.1 UITapGestureRecognizer 不好用的解决办法
  • 原文地址:https://www.cnblogs.com/yummylucky/p/11045496.html
Copyright © 2011-2022 走看看