1. 程式人生 > >laravel 實現使用者登入登出並限制

laravel 實現使用者登入登出並限制

 1. 建立登入控制器  
 在專案根目錄輸入: php artisan make:controller Admin/LoginController


      2.建立使用者模組  以及資料庫

 php artisan make:model Model/Admin -m


 執行之後 專案中會新增兩個PHP檔案


新建立了admins使用者表,此使用者表預設新建中只有主鍵,建立時間,編輯時間。我們接下來新加兩個欄位 使用者名稱(username)

和密碼(password).


在up函式中加上這兩個欄位,後面可以按自己的需求新增屬性。

laravel預設的字符集是utf8mb4,新增的資料庫欄位會有這個字符集,想要改成utf8 可以直接修改datebase


接下來執行資料遷移命令 php artisan migrate 來建立資料表


執行之後資料庫中新增了admins表


3.填充資料

因為還沒有做註冊所以我們利用tinker來表中填充資料,如果已經做了註冊功能就不用坐下面的步驟了,也可以直接執行sql,直接

填充,保證密碼加密。

首先在配置中新增想要新增的資料。在datebase/factories/


define方法裡面寫自己的使用者模組的命名,裡面加上預設密碼。


之後執行php artisan tinker 命令 裡面輸入 factory(模組命名,條數);

執行之後資料庫中新增了三條資料,例項中密碼都是admin。


4.使用者登入配置

首先在config/auth.php中新增配置,框架預設都是走的自帶的User模組。



加上圖中的兩個配置,命名按照自己的模組名字來命名。

修改模組繼承函式跟系統的自帶的User.php一樣就可以了。


5.登入函式

這裡先略過前段頁面的表單的寫法以及表單提交的方式,直接獲取資料的函式來寫。

$statue = Auth::guard('admin')->attempt([
            'username'=>$request->input('username'),
            'password'=>$request->input('password'),
            
        ]);

以上就是登入函式,guard函式中寫入自己在auth.php配置中寫的命名。指定使用者登入的表。


在前段頁面中獲取的時候也要指定命名。


6.限制頁面許可權

後臺登陸首頁之前判斷是否登陸,如果沒有登入則跳轉到登入頁。

首先做一箇中間件,讓每個頁面控制器執行之前先執行中介軟體,我們在中介軟體中寫一些頁面是否有許可權訪問的動作。



執行之後裡面填寫驗證指定的表使用者是否登陸



之後我們在kernel.php中新增中介軟體


我們在登入的控制器中呼叫,並指定哪個函式不需要限制。



 7.登出