想请问下老师关于session和cookie的时间问题
token的话是使用redis来存储的,session和cookie都有自己的过期时间,这两个时间应该怎么设置呢?设置成一样吗?我的想法是cookie的时间应该要比redis的长,然后请求的时候可以重置redis的时间,但是如果redis的token彻底过期不能用了,而cookie还在,且根据cookie无法判断用户,这样的问题应该怎么处理呢?
正在回答
你好,session不用设置过期时间,默认浏览器关闭时过期。在默认值时间范围内没有任何操作则过期,如果需要修改此默认值,则需要修改PHP.ini文件 session.gc_maxlifetime = 秒,然后重启服务器
cookie的设置方法是利用setcookie 函数;
setcookie("cookie_name", "abcd", time()+3600);这个cookie有3600秒的有效期; cookie有效期在退出作用域那一刻开始生效;重新又有3600秒,设置cookie时,不会考虑之前的是否设置cookie和cookie是否有效,可以认为是强制设置。
如果关闭浏览器重新打开又重新算(当然这个要php.ini设置了关闭浏览器立即失效的开关),其实就是打开页面产生cokeie开始算起,如果你打开页面产生cokeie的时间有1800秒了,假如设置的3600秒失效,再次刷新页面就剩1800秒了,
而redis可以通过设置key值的有效时间来控制有效期,如果redis的token过期不能使用,这种情况用户应该重新登录。
如果解决了你的问题,请采纳,祝学习愉快~
- 参与学习 人
- 解答问题 722 个
掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星