任何人都可以通过示例解释Laravel 5.2 Multi Auth

任何人都可以通过示例解释Laravel 5.2 Multi Auth

我想验证用户管理员的形式user表,并admin分别表。我正在使用User开箱即用的laravel提供的模型,并为Admin.我添加了一个保护密钥和提供者密钥创建了相同的模型auth.php.

逆天

'guards' => [
    'user' =>[
        'driver' => 'session',
        'provider' => 'user',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admin',
    ],],

供应商

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

路线

Route::group(['middleware' => ['web']], function () {
    // Login Routes.   
    Route::get('/admin/login','AdminAuth\AuthController@showLoginForm');
    Route::post('/admin/login','AdminAuth\AuthController@login');
    Route::get('/admin/logout','AdminAuth\AuthController@logout');

    // Registration Routes.
    Route::get('admin/register', 'AdminAuth\AuthController@showRegistrationForm');
    Route::post('admin/register', 'AdminAuth\AuthController@register');

    Route::get('/admin', 'AdminController@index');});

我创建了一个名为AuthAdminLaravel的默认目录AuthController.phpPasswordController.php文件的目录。(名称空间相应修改)

首先,在Laravel的文档中提到如何指定自定义防护,同时进行身份验证,这是不起作用的。

Laravel的文档中提到的另一种方法是使用不起作用的后卫。

如果有人能够解决问题并在我错了的情况下纠正我,那将是有益的。


慕标5832272
浏览 533回答 3
3回答

阿波罗的战车

如果这有助于任何人,这可能只是由于我对中间件缺乏了解,这是我必须做的工作(除了@imrealashu采取的步骤)...在route.php:Route::get('/admin', [   'middleware' => 'admin',   'uses' => 'AdminController@index']);这是在web中间件组中。在此之前,我尝试将它放在一个单独的admin中间件组中,甚至在一个auth:admin组中,但是这不起作用,当我在路由本身指定中间件作为管理员时,它只适用于我。我不知道为什么会这样,但我希望它可以让别人像我一样把头发拉出来。

料青山看我应如是

在laravel 5.6中非常容易。只需转到config/auth.php并在providers数组中添加此行:'admins' => [    'driver' => 'database',    'table' => 'admin_table']请注意,我们用于database驱动程序eloquent。现在将其添加到guards数组:'admin_guard' => [    'driver' => 'session',    'provider' => 'admins']现在我们完成了!使用admins表时使用此选项:Auth::guard('admin_guard')->User();干杯。
打开App,查看更多内容
随时随地看视频慕课网APP