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