想请问下老师关于session和cookie的时间问题

想请问下老师关于session和cookie的时间问题

token的话是使用redis来存储的,session和cookie都有自己的过期时间,这两个时间应该怎么设置呢?设置成一样吗?我的想法是cookie的时间应该要比redis的长,然后请求的时候可以重置redis的时间,但是如果redis的token彻底过期不能用了,而cookie还在,且根据cookie无法判断用户,这样的问题应该怎么处理呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

 你好,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过期不能使用,这种情况用户应该重新登录。

如果解决了你的问题,请采纳,祝学习愉快~

  • 我的意思是,如果cookie里面的token没到期,但是redis里面的过了,咋整
    2018-07-17 21:52:45
  • guly 回复 提问者 有没有没被占用的昵称 #2
    你好,如果保存用户信息是通过redis获取的redis到期,和cookie无关,祝学习愉快!
    2018-07-18 09:48:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP典型功能与Laravel5框架开发
  • 参与学习           人
  • 解答问题       722    个

掌握开发中必备技能解锁缓存、支付,邮件和短信发送等高端接口运用,直击工作重难点,通过开发简书项目熟练掌握Laravel5的开发技术。完成以上三个阶段的学习,成为满足企业需求的开发工程师。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师