用户
 找回密码
 入住 CI 中国社区
搜索
查看: 219|回复: 6
收起左侧

[Session/Cookie] 网站在关闭浏览器后为什么不需要重新登录

[复制链接]
发表于 2018-6-29 09:09:28 | 显示全部楼层 |阅读模式
网站登录成功后,直接关闭浏览器,再打开浏览器为什么可以直接访问不需要重新登录?这是什么鬼?
查找论坛、贴吧,说是CI框架session的有效期问题,session_id存在cookie中,cookie设置了有效期存在了内存中,关闭浏览器,cookie还存在,所以不用重新登录,只要在设置cookie的时候不要设置过期时间,关闭浏览器就直接清除cookie了。
按照这个说法,根据论坛代码,改了session类,windows下关闭浏览器需要重新登录了,为什么ubuntu下还是不行呢,还是可以直接访问
发表于 2018-6-29 14:12:24 | 显示全部楼层
感觉不是CI的问题,你用PHP直接写一个session试试
发表于 2018-6-29 18:25:18 | 显示全部楼层
要关闭浏览器,好像只关闭 Tab 标签页不行,主要是看一下 cookie 是不是浏览器关闭就失效,Cookie 默认就是关闭浏览器就失效。可以通过浏览器调试器看一下。

CI 3 的 Session 就是 PHP 原生 Session,等价于 $_SESSION。
 楼主| 发表于 2018-7-3 16:35:20 | 显示全部楼层
Hex 发表于 2018-6-29 18:25
要关闭浏览器,好像只关闭 Tab 标签页不行,主要是看一下 cookie 是不是浏览器关闭就失效,Cookie 默认就是 ...

我说的就是关闭浏览器,你可以试下,用ci自带的session类,不做任何改动,关闭后再打开还是登录状态
发表于 2018-7-3 16:56:41 | 显示全部楼层
CI_TC 发表于 2018-7-3 16:35
我说的就是关闭浏览器,你可以试下,用ci自带的session类,不做任何改动,关闭后再打开还是登录状态 ...

首先,CI3 自带的 Session 就是 PHP 原生 Session。另外,看一下 cookie 有效期是不是写着『浏览器关闭就失效』,是才行,不是则需要进行一些设置。
 楼主| 发表于 2018-7-4 08:55:03 | 显示全部楼层
首先,感谢你的回答;其次,你说的情况都满足;最后,我已经说了你可以自己试下,你就明白了
发表于 2018-7-5 19:03:18 | 显示全部楼层
CI_TC 发表于 2018-7-4 08:55
首先,感谢你的回答;其次,你说的情况都满足;最后,我已经说了你可以自己试下,你就明白了 ...

这个我试过才来回答的呀,我这里是正常的,所以我才需要了解你那里的情况,才能确定你是什么问题。

对于 Session 是否过期,不管是 CI 的还是 PHP 的,最重要的都是 cookie 的有效期,如果 cookie 有效期是浏览器关闭就失效,不管你用的什么语言,Session 都会过期,因为实现 Session 的基础是 Cookie。而如果 cookie 有效期已经是关闭浏览器就失效,如果关闭了没失效,那就是浏览器的 BUG,这已经和 PHP 没关系了。

本版积分规则