Laravel 實現(xiàn)用戶登錄久了自動退出登錄

在寫一個 Web 應用的時候珊搀,很多人都遇到過這樣的需求:如何實現(xiàn)在一個用戶登錄進來之后北启,停留時間過久(頁面沒有操作和活動)跛蛋,我們就自動將用戶退出登錄糕档?

解決辦法其實很簡單莉恼,我們在 Laravel 中自定義一個 Middleware 就可以實現(xiàn):

namespace App\Http\Middleware;

use Closure;

class SessionTimeout
{
    
    protected $timeout = 1200;
    public function handle($request, Closure $next)
    {
        $isLoggedIn = $request->path() != 'logout';
         
        if ( !session('lastActivityTime')) {
            app('session')->put('lastActivityTime', time());
        } elseif (time() - app('session')->get('lastActivityTime') > $this->timeout) {
            app('session')->forget('lastActivityTime');
            $cookie = cookie('intend', $isLoggedIn ? url()->current() : 'home');
            $email = $request->user()->email;
            auth()->logout();
            
            return route('login')->withInput(['email' => $email])->withCookie($cookie); 
        }
        
        $isLoggedIn ? app('session')->put('lastActivityTime', time()) : app('session')->forget('lastActivityTime');
        
        return $next($request);
    }

我們主要是通過 lastActivityTime 這個記錄來判斷用戶是否有對應的操作(刷新頁面或者是訪問新的頁面等),
如果在 20 分鐘內沒有操作的話,我們就會跳轉到登錄頁面俐银。

不好的一點是:這樣的解決方案其實記錄的 session 值會很多尿背,消耗一定的性能,特別是你的 session 存儲在文件的時候捶惜,更是慢田藐。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吱七,隨后出現(xiàn)的幾起案子汽久,更是在濱河造成了極大的恐慌,老刑警劉巖陪捷,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件回窘,死亡現(xiàn)場離奇詭異,居然都是意外死亡市袖,警方通過查閱死者的電腦和手機啡直,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苍碟,“玉大人酒觅,你說我怎么就攤上這事∥⒎澹” “怎么了舷丹?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜓肆。 經(jīng)常有香客問我颜凯,道長,這世上最難降的妖魔是什么仗扬? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任症概,我火速辦了婚禮,結果婚禮上早芭,老公的妹妹穿的比我還像新娘彼城。我一直安慰自己,他們只是感情好退个,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布募壕。 她就那樣靜靜地躺著,像睡著了一般语盈。 火紅的嫁衣襯著肌膚如雪舱馅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天刀荒,我揣著相機與錄音习柠,去河邊找鬼匀谣。 笑死,一個胖子當著我的面吹牛资溃,可吹牛的內容都是我干的武翎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼溶锭,長吁一口氣:“原來是場噩夢啊……” “哼宝恶!你這毒婦竟也來了?” 一聲冷哼從身側響起趴捅,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤垫毙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拱绑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體综芥,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年猎拨,在試婚紗的時候發(fā)現(xiàn)自己被綠了膀藐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡红省,死狀恐怖额各,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情吧恃,我是刑警寧澤虾啦,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站痕寓,受9級特大地震影響傲醉,放射性物質發(fā)生泄漏。R本人自食惡果不足惜呻率,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一需频、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筷凤,春花似錦、人聲如沸苞七。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹂风。三九已至卢厂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惠啄,已是汗流浹背慎恒。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工任内, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人融柬。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓死嗦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粒氧。 傳聞我的和親對象是個殘疾皇子越除,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,607評論 0 121
  • 必備品文檔:DocumentationAPI: API Reference視頻:Laracasts速查表:Lara...
    ethanzhang閱讀 5,746評論 0 68
  • 簡介 laravel 使實施認證的變得非常簡單,事實上外盯,它提供了非常全面的配置項以適應應用的業(yè)務摘盆。認證的配置文件存...
    Dearmadman閱讀 6,130評論 2 13
  • 先說幾句廢話,調和氣氛饱苟。事情的起由來自客戶需求頻繁變更孩擂,偉大的師傅決定橫刀立馬的改革使用新的框架(created ...
    wsdadan閱讀 3,053評論 0 12
  • 早上类垦,我媽媽給我打電話,說天涼了坦弟,該穿秋褲了护锤。 然后,張靚穎媽媽也拋出一發(fā)重磅炸彈酿傍。 這發(fā)炸彈的威力烙懦,張靚穎就是穿...
    姜棗茶閱讀 370評論 0 0