第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何決定 session 時間?

如何決定 session 時間?

PHP
紫衣仙女 2019-03-18 15:35:11
想請問一下我在 php.ini 設(shè)定session是存在86400但能不能讓他永久?應(yīng)該是說我可以在網(wǎng)頁上決定他多長,不會被php.ini 限制,那我php.ini 要怎麼設(shè)定呢?網(wǎng)頁上要怎麼設(shè)定呢?
查看完整描述

6 回答

?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

你設(shè)置了 php.ini 的 session 時間,我覺得確實生效了。
你會發(fā)現(xiàn),有些網(wǎng)站登錄賬號,你兩個小時沒有操作,掛著網(wǎng)頁,再操作時會讓你重新登錄,這個才是 session 的有效期,你設(shè)置的 86400 只是這個時間。
而你說的過期則是另外一種過期:
你第一次訪問頁面,得到一個 session_id 0x01,而你關(guān)閉了瀏覽器,重新訪問頁面,由于 http 是無狀態(tài)的,所以會重新分配一個 session_id 0x02 給你,實際上你第一次訪問獲得的 0x01 還沒有過期,只是因為你當(dāng)前的session_id變成了0x02


評論回復(fù)不能保持格式,在這里加一下

想要無限延長,可以這樣做(laravel就是這樣做的)

  1. 用戶表增加一個字段 remeber_token
  2. 當(dāng)用戶登錄成功時,生成一個隨機字符串存入用戶表的 remeber_roken,并返回給前端
  3. 前端把返回的 remeber_token 存入本地,試過 h5 的 localStore,或者其他。能永久存儲的。
  4. 當(dāng)用戶再打開頁面,session 過期要去登錄時,直接判斷 js 本地是否存儲了remeber_token ,
  5. 如果有發(fā)送請求后臺,后臺請求數(shù)據(jù)庫匹配出用戶并登錄

4.5 無限循環(huán)達到永久登錄
清楚瀏覽器緩存會失效,只能重新登錄

查看完整回答
反對 回復(fù) 2019-03-18
?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

你在php.ini 里面把 session.cookie_lifetime 和 session.gc_maxlifetime設(shè)置的超大就行,例如999999999

查看完整回答
反對 回復(fù) 2019-03-18
?
梵蒂岡之花

TA貢獻1900條經(jīng)驗 獲得超5個贊

使用session_cache_expire(),然后使用session_start()

查看完整回答
反對 回復(fù) 2019-03-18
?
繁星coding

TA貢獻1797條經(jīng)驗 獲得超4個贊

經(jīng)過和你的交流過程,我來做一下回答,上面他們的回答我也看了,也具有一定的道理,要做到你說的這個無限延時也可以做到,那么我站在安全性的角度來和你交流這個東西,雖然來說不一定全部正確,或者是有些地方考慮不夠周到。

一般來說,你在瀏覽器上存一個cookie,cookie可以是一個token或者是key什么的,這個cookie過期時間設(shè)置為一個周或者24小時,如果用戶在這個期間沒有訪問,那么就讓這個用戶重新登錄。在數(shù)據(jù)庫中的用戶表也用一個字段來記錄這個token,每次對比一下,如果數(shù)據(jù)表中存在這個token,且數(shù)據(jù)表中設(shè)置的過期時間滿足,則創(chuàng)建一個新的token存到瀏覽器,然后再以設(shè)置的時候為開始時間再計算出一個有效期,這樣子的話,只要用戶在指定的時間訪問平臺,讓用戶感覺是沒有退出登錄的,而用戶退出后超出一段時間沒登錄,就重新發(fā)起登陸,防止別人拿到這個token了就可以一直模擬這個用戶訪問這個用戶的數(shù)據(jù)資料或者操作這個用戶的數(shù)據(jù)。

而刷新token的作用主要就是防止別人拿到cookie就可以模擬這個用戶登陸,而同時又可以保持用戶不會退出登錄,相當(dāng)于做了一道安全措施。

其他的相關(guān)想法歡迎探討

查看完整回答
反對 回復(fù) 2019-03-18
?
當(dāng)年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

如果想突破單純的session限制,可以不考慮用php的session,直接把起始時間戳存入數(shù)據(jù)庫,然后自定義過期時間3年,5年,10年... 是這個意思嗎?

查看完整回答
反對 回復(fù) 2019-03-18
  • 6 回答
  • 0 關(guān)注
  • 522 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號