亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 laravel 6 在我的軟件包中使用身份驗證進行自定義防護?

如何使用 laravel 6 在我的軟件包中使用身份驗證進行自定義防護?

PHP
炎炎設計 2022-09-12 11:10:22
我正在嘗試使用表格通過拉維爾包進行身份驗證。在項目目錄中,我在配置/身份驗證中添加了警衛.phpadminsadmin'providers' => [        'users' => [            'driver' => 'eloquent',            'model' => App\User::class,        ],        'admins' => [            'driver' => 'eloquent',            'model' => App\Admin::class,        ],        // 'users' => [        //     'driver' => 'database',        //     'table' => 'users',        // ],    ],在防護陣列中    'guards' => [        'web' => [            'driver' => 'session',            'provider' => 'users',        ],        'api' => [            'driver' => 'token',            'provider' => 'users',            'hash' => false,        ],        'admin' => [            'driver' => 'session',            'provider' => 'admins',        ],    ],以下是我在帕卡格內部的登錄控制器class LoginController extends Controller{   use AuthenticatesUsers;   protected $redirectTo = '/admin/dashboard';   protected function redirectTo()   {         return '/admin/dashboard';   }   public function __construct()   {       $this->middleware('guest')->except('logout');   }   public function login(Request $request)   {          if(Auth::guard('admin')->attempt($request->only('email','password'), true)){           return redirect()               ->intended(route('dashboard'))               ->with('status','You are Logged in as Admin!');       }   }}以下是我的儀表板控制器class DashboardController extends Controller{    public function __construct()    {        /* dd(Auth::check()); */ //return false : just want to show you          $this->middleware('auth:admin');    }    public function index()    {        return view('xyz::dashboard');    }}在我的模型中,以下腳本就在那里Admin.phpnamespace App;class Admin extends \ABC\xyz\App\Models\Admin{}當我嘗試登錄時,在提交有效詳細信息后,它不會將我重定向到儀表板,沒有任何反應。另外,當我嘗試強行打開/儀表板時,它會帶我進入登錄頁面。同樣在登錄嘗試之后,當我嘗試它返回時,但在構造函數中返回同樣的事情。以同樣的方式返回用戶的信息,同時返回它。我不知道我錯過了什么,在哪里錯過了一些東西。Auth::check()truefalsedashboardController.phpAuth::guard('admin')->user()dashboardController.phpnull我想請你指導我。我將不勝感激。
查看完整描述

4 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

中間件 () 負責重定向經過身份驗證的用戶。guest\App\Http\Middleware\RedirectIfAuthenticated

使用中間件時,您必須通過身份驗證防護才能按如下方式使用:

guest:guard

示例:在登錄控制器構造函數中,使用

$this->middleware('guest:admin')->except('logout');

而不是$this->middleware('guest')->except('logout');


查看完整回答
反對 回復 2022-09-12
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

在儀表板控制器中使用。(返回經過身份驗證的管理員)auth('admin')->user()



查看完整回答
反對 回復 2022-09-12
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

使用前綴定義路由時,路由名稱將如下所示,URL 將類似于 。所以在這里你可以試試這個prefix.nameprefix/url


Route::group([    

        'namespace' => $namespace,

        'middleware' => ['web'], 

        'prefix' => 'admin'

    ], function () {

        Route::get('login', function(){

            return view('xyz::auth.login');

        })->name('login');


        Route::post('login', 'Auth\LoginController@login')->name('tryForLogin');

});


Route::group(['namespace' => $namespace,'prefix' => 'admin','middleware' => 'auth'], function () {

    Route::get('dashboard', function(){

        return view('xyz::dashboard');

    })->name('dashboard');

});

所有組都以“admin”為前綴,但是有一些路由或頁面可以在登錄時訪問。


查看完整回答
反對 回復 2022-09-12
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

是用于定義路由終結點前綴的選項。您正在尋找該選項。prefixas


// gives you routes:

// GET /admin/login named "admin.login" with middleware "web"

// POST /admin/login named "admin.tryForLogin" with middleware "web"

Route::group([    

        'namespace' => $namespace,

        'middleware' => ['web'], 

        'prefix' => 'admin',

        'as' => 'admin.'

    ], function () {

        Route::get('login', function() {

            return view('xyz::auth.login');

        })

        ->name('login');


        Route::post('login', 'Auth\LoginController@login')->name('tryForLogin');

    }

);


// gives you routes:

// GET /admin/dashboard named "admin.dashboard" with middleware "auth"

Route::middleware(['auth'])->group(function () {

    Route::get('/admin/dashboard', function(){

        return view('xyz::dashboard');

    })

    ->name('admin.dashboard');

});

在代碼更改后運行。php artisan optimize:clear


查看完整回答
反對 回復 2022-09-12
  • 4 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號