能否举例解释 Laravel 5.2 的多认证方式?

10 浏览
0 Comments

能否举例解释 Laravel 5.2 的多认证方式?

我正在尝试对user表和admin表分别进行用户和管理员的认证。

我正在使用Laravel开箱即用的User模型,并针对Admin创建了相同的模型。我已经在auth.php中添加了一些GuardProvider的键。

守卫

'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');
});

我创建了一个名为AuthAdmin的目录,其中包含Laravel默认的AuthController.phpPasswordController.php文件。(已相应修改命名空间)

首先,在Laravel文档中提到了如何在认证时指定自定义守卫,例如下面的示例,但这并不起作用。

\"enter

文档中还提到了另一种使用守卫的方法,但也不起作用。

\"enter

如果有人可以解决这个问题并指正我,那就好了。

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果这可以帮助任何人,也许只是因为我对中间件的理解不足,这是我必须要做的事情(除了@imrealashu采取的步骤)...

route.php中:

Route::get('/admin', [
  'middleware' => 'admin',
  'uses' => 'AdminController@index'
]);

这是在web中间件组中。在此之前,我尝试将其放在单独的admin中间件组中,甚至在auth:admin组中也是如此,但这没有起作用。只有在路由本身上指定中间件为admin时,才对我起作用。我不知道为什么,但我希望它可以让其他人像我一样不再揪着头发。

0
0 Comments

输出内容缺失

0