鍍金池/ 問(wèn)答/PHP  Linux/ php如何設(shè)置session只有在用戶(hù)關(guān)閉瀏覽器或退出 登錄才會(huì)回收過(guò)期的

php如何設(shè)置session只有在用戶(hù)關(guān)閉瀏覽器或退出 登錄才會(huì)回收過(guò)期的

php中,用戶(hù)在登錄時(shí)設(shè)置session_id并儲(chǔ)存在指定路徑,其中存有token等用戶(hù)信息,默認(rèn)過(guò)期時(shí)間時(shí)24分鐘,也就是用戶(hù)在24分鐘內(nèi)不活動(dòng),session就回收,用戶(hù)在24分鐘中之后如果進(jìn)行操作就會(huì)出現(xiàn)會(huì)話(huà)過(guò)期的提示。
以上是目前網(wǎng)站中的機(jī)制。

請(qǐng)問(wèn)如何正確設(shè)置session,已達(dá)到,用戶(hù)在退出登錄或者關(guān)閉瀏覽器時(shí)候,session才會(huì)過(guò)期?也就是說(shuō),不管用戶(hù)在默認(rèn)的24分鐘之后是否活動(dòng),session都是一直有效的。求大佬們指教

回答
編輯回答
淡墨

session過(guò)期時(shí)間可以自定義啊,修改一下不就好了
session.cookie_lifetime = 0瀏覽器關(guān)閉失效

2018年1月27日 03:31
編輯回答
撿肥皂

關(guān)閉瀏覽器之后,session失效這個(gè)還沒(méi)有聽(tīng)說(shuō)過(guò).一般都是清空瀏覽器session會(huì)失效.

2017年12月4日 03:54
編輯回答
眼雜

另外,我在session_start()之前設(shè)置了
$lifeTime = 60;
session_set_cookie_params($lifeTime);
以測(cè)試是否有用,但是好像是因?yàn)楦怕蕟?wèn)題,發(fā)現(xiàn)并沒(méi)失效

2018年9月10日 23:29
編輯回答
選擇

并不推薦通過(guò)調(diào)整session時(shí)間去實(shí)現(xiàn)該,這其實(shí)是導(dǎo)致安全性問(wèn)題;

我推薦的做法是,在你的前端頁(yè)面通過(guò)js自動(dòng)定時(shí)訪問(wèn)后端接口實(shí)現(xiàn)對(duì)SESSION的保活。

兄弟,PHP的Session準(zhǔn)確的將不是通過(guò)時(shí)間自動(dòng)失效,是有個(gè)配置項(xiàng):

gc來(lái)控制,應(yīng)該是達(dá)到請(qǐng)求數(shù)量后才會(huì)去檢查gc,在生產(chǎn)環(huán)境可以提升性能,你測(cè)試環(huán)境沒(méi)有達(dá)到gc的請(qǐng)求數(shù)量所以就并不會(huì)去檢查session是否失效。

參考:
http://php.net/manual/zh/sess...

2018年1月19日 10:33