laravel 5.3 單使用者登入簡單實現方法
阿新 • • 發佈:2020-11-19
需求描述
當前使用者只能在一個地方登入,即同一賬號不能再2個以上視窗登入,後登入者踢出前登入者。
設計思路
在使用者資料表中新增1個欄位,記錄當前登入用的session_id,當用戶登入的時候把session_id儲存到資料庫中,然後在中介軟體認證里加判斷,判斷當前使用者sesson_id是否和資料庫中的session_id相等,如果相等繼續向下執行,反之登出登入。
具體實現
1.首先在使用者表中新增欄位last_session,型別CHAR 40長度
2.在AuthController 控制器中實現父類方法authenticated方法,目的儲存當前使用者的session_id到資料庫中。
protected function authenticated($request,$user){ $user->last_session = Session::getId(); $user->save(); return redirect()->intended($this->redirectPath()); }
3.在Authenticate中間中加入判斷程式碼
if(Session::getId() != Auth::guard($guard)->user()->last_session){ return redirect('/admin/logout');}
也可以在判斷程式碼塊中加入其它,如提示當前賬號在其它地方登入,然後登出當前登入等。
以上這篇laravel 5.3 單使用者登入簡單實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。