建站篇-使用者認證系統-管理員登陸後臺

kim@chan發表於2017-01-15

計劃將使用者都存放在users表中,依靠role判斷是否可以登陸管理後臺。

對應的我們需要新建Role.php在AppModel下(暫時不用管其中的permissions方法)

對應的User.php中加上方法

public functionroles(){

    return    $this->belongsToMany(`AppModelRole`,`role_user`,`user_id`,`role_id`);

}

role_user為他們的關聯表,只有role_id 和 user_id兩個欄位

首先建立登入頁面auth/admin/login.blade.php

和使用者登入介面類似,程式碼不再重複。注意Post路由改一下。

新增路由到web.php

Route::group([`prefix` => `admin`], function () {

    Route::get(`login`, `AdminAuthLoginController@showLoginForm`);

});

完成showLoginForm程式碼

新增guest檢測

其中中介軟體guest.backend 為`guest.backend`=>AppHttpMiddlewareAuthRedirectIfAuthenticatedBackendUser::class,

同時完成login方法

其中使用到了RoleService,檔案建立在APPServices下

擁有登入後臺許可權的role角色記錄在config檔案Role.php中

`backend`=>[

     `admin`,

],

注意到,登入成功後跳轉到

protected    $redirectTo=`admin/index`;

完成index方法在IndexController中

中介軟體role.backend.access為

`role.backend.access`=>AppHttpMiddlewareRoleBackendAuthenticated::class,


相關文章