请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师,这里为什么要设成过期时间是session呢,这是什么意思呢?

login(){
      let { username,password } = this;
      this.axios.post('/user/login',{
        username,
        password
      }).then((res)=>{
        this.$cookie.set('userId',res.id,{expires:'Session'});
        // this.$store.dispatch('saveUserName',res.username);
        this.saveUserName(res.username);
        this.$router.push({
          name:'index',
          params:{
            from:'login'
          }
        });
      })
    }

1.this.$cookie.set('userId',res.id,{expires:'Session'}); 这里的过期时间为什么设成‘session’呢?这具体是什么意思呢?(是意思和session的过期时间一样吗?
2.this.$cookie.set('userId',res.id,{expires:'1M'});当过期时间设成1M的时候,为什么退出登录的时候,在已经把过期时间重新设置为即可过期了的情况下this.$cookie.set('userId','',{expires:'-1'});//即刻过期,未登录刷新首页的时候还有userId呢?

正在回答

1回答

session只是一种模式,具体设置成Session模式还是需要设置成一定过期时间,这个根据业务决定。 session模式指的是会话级别,也就是浏览器关闭cookie就会失效并过期。

第二条,你描述的说是设置为-1,但是用户id还在,你测试过吗,可以再退出登录按钮的点击事件里面设置一下-1看看,然后再把userId打印一下。你说的这个情况是不会存在的

0 回复 有任何疑惑可以回复我~
  • 提问者 JavaScript__yxq #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2021-07-26 16:43:33
  • 提问者 JavaScript__yxq #2
    嗯,可能是我之前测试的时候看错了。
    我总结了一下:设置过期时间为session是为了防止退出浏览器之后再回来时,虽然未登录但是userId还存在,退出前把userId过期时间改成-1是为了防止退出之后userId还存在。  是这个意思吧?
    回复 有任何疑惑可以回复我~ 2021-07-26 16:45:39
  • 河畔一角 回复 提问者 JavaScript__yxq #3
    session和过期时间-1不要混在一起,这是两个话题。
    
    我上面说的session意思是有的登录可能就希望是会话级别,浏览器一关闭自动过期,下次进来是需要从新登录的。  大部分网站可能都不会用这种方式。
    
    
    过期时间设置为-1这就是正常的方式了,一般会设置一个有效期,但是当主动退出登录时,可以手动让它过期,这样浏览器会自动清空userId
    回复 有任何疑惑可以回复我~ 2021-07-26 16:49:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信