单点登录遇到cookies的坑

前段时间做了一个单点登录的系统,测试使用一段时间,流程是通,突然有一天测试让我看看她那里登陆后一直提示在其他地方登录,然后再次跳到单点登录的问题,然后我过去看,确实有这个问题,查看了登录后接口返回是新的token,但是每次登陆后调接口传递的参数都是一样的。因为在测试的电脑上我也没办法本地调试。

我就自己本地复现这个问题,无法复现,然后尝试多个系统打开,多个窗口打开均无法复现。然后暂时搁置了,某一天我本地开发的时候也遇到了这个问题,所以就开启了我得本地调试之旅,我发现每次单点登录系统跳转之前的cookies数据是新的,跳转到本系统之后console的token数据就是旧的,我打开浏览器调试面板的cookies数据,有两条一条是路径/ 一条是路径/company。

于是我尝试把登陆后设置的cookies数据设置成死的字符串“123”  发现cookies下的路径是/的数据是新设置的,然后我就明白了,可能是跟路径有关。然后我把单点登陆后设置cookies的path设置成/company。

然后我就去查找了js-cookies 的path的相关设置。

 Cookies.set("userInfo", encodeUserInfo, {

          // expires: 1000,

          path: "/company",

          domain: cookiesDomine,

  });

然后发现确实好了,这次登陆后取值是新的了,那就确认了是由两个路径的path,所以是登陆后设置的cookies路径是/,但是多了一个/company路径的问题。所以我不知道/company路径的数据是哪里来的,我发现在/company页面提交后设置了cookies,但是没有设置path

   Cookies.set("userInfo", encodeUserInfo, {

      domain: cookiesDomine,

    });

所以我猜测可能是没有设置路径导致cookies取了当前url的路径,所以我把这里的cookies加上了路径

   Cookies.set("userInfo", encodeUserInfo, {

       path: "/",

     domain: cookiesDomine,

     });

于是这个问题就解决了。

所以js-cookies的文档上写的是path不设置默认取根路径,但是实际上取了当前url的路径

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值