1. 程式人生 > 實用技巧 >laravel 5.3 單使用者登入簡單實現方法

laravel 5.3 單使用者登入簡單實現方法

需求描述

當前使用者只能在一個地方登入,即同一賬號不能再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 單使用者登入簡單實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。