(用戶認(rèn)證系統(tǒng)與獨(dú)立設(shè)置guard進(jìn)行登錄處理)2020-04-05

1、Guard
我的理解他應(yīng)該是一個(gè)類似用戶認(rèn)證的東西。
默認(rèn)使用的是user模型的。
如果存在前后臺兩個(gè)人用戶組。就必須要使用guard來進(jìn)行指定。那么問題來了,怎么指定呢?
在 config/auth.php 中有配置 guards 的參數(shù),可以看出來 web 和 api 是兩個(gè) guards。
在平時(shí)的業(yè)務(wù)中api可能更多的是用戶前臺用戶的操作,而web更多的是后臺用戶的操作。

過程:
1、在 config/auth.php 中有配置 guards 和provders的參數(shù)

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Admin::class,
        ],

2、使用artisan make:model Admin -fm來創(chuàng)建admin模型
3、定義好路由指向admin的守衛(wèi)

Route::group(['middleware' => ['web','auth:admin'], 'prefix' => 'admin', 'namespace' => 'Modules\Admin\Http\Controllers'], function () {
    Route::get('/', 'AdminController@index');
    Route::resource('Person','PersonController');
});

4、在admin/auth/login.php文件下,重新定義showLoginForm和guard方法。

protected function guard()
    {

        return Auth::guard('admin');
    }

    public function showLoginForm()
    {
        return view('admin::auth.login');
    }

5、使admin模型具有守衛(wèi)者的功能

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;

class Admin extends Authenticatable
{
    use Notifiable,HasRoles;
    //
}

6、在admin/auth/login.php文件'guest'改成使用'guest:admin'。不然使用的web守衛(wèi)

public function __construct()
    {
        $this->middleware('guest:admin')->except('logout');
    }

也可以在admin/auth/login.php文件將'/home'改成'/admin'。

protected $redirectTo = '/admin';

兩者選其一

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容