需求描述
當前用戶只能在一個地方登錄,即同一賬號不能再2個以上窗口登錄,后登錄者踢出前登錄者。
設計思路
在用戶數(shù)據(jù)表中新增1個字段,記錄當前登錄用的session_id,當用戶登錄的時候把session_id存儲到數(shù)據(jù)庫中,然后在中間件認證里加判斷,判斷當前用戶sesson_id是否和數(shù)據(jù)庫中的session_id相等,如果相等繼續(xù)向下執(zhí)行,反之注銷登錄。
具體實現(xiàn)
1.首先在用戶表中新增字段last_session,類型CHAR 40長度
2.在AuthController 控制器中實現(xiàn)父類方法authenticated方法,目的保存當前用戶的session_id到數(shù)據(jù)庫中。
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 單用戶登錄簡單實現(xiàn)方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel 5.4重新登錄實現(xiàn)跳轉到登錄前頁面的原理和方法
- Laravel5.2使用Captcha生成驗證碼實現(xiàn)登錄(session巨坑)
- laravel5.2實現(xiàn)區(qū)分前后臺用戶登錄的方法
- laravel5實現(xiàn)微信第三方登錄功能
- 基于Laravel5.4實現(xiàn)多字段登錄功能方法示例
- Laravel5.5 實現(xiàn)后臺管理登錄的方法(自定義用戶表登錄)
- 解決laravel5中auth用戶登錄其他頁面獲取不到登錄信息的問題
- Laravel5.4框架使用socialite實現(xiàn)github登錄的方法
- Laravel 5.5 實現(xiàn)禁用用戶注冊示例
- Laravel5.1 框架登錄和注冊實現(xiàn)方法詳解