任何人都可以通过示例解释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.php和PasswordController.php文件的目录。(名称空间相应修改)首先,在Laravel的文档中提到如何指定自定义防护,同时进行身份验证,这是不起作用的。Laravel的文档中提到的另一种方法是使用不起作用的后卫。如果有人能够解决问题并在我错了的情况下纠正我,那将是有益的。
3 回答
阿波罗的战车
TA贡献1862条经验 获得超6个赞
如果这有助于任何人,这可能只是由于我对中间件缺乏了解,这是我必须做的工作(除了@imrealashu采取的步骤)...
在route.php
:
Route::get('/admin', [ 'middleware' => 'admin', 'uses' => 'AdminController@index']);
这是在web
中间件组中。在此之前,我尝试将它放在一个单独的admin
中间件组中,甚至在一个auth:admin
组中,但是这不起作用,当我在路由本身指定中间件作为管理员时,它只适用于我。我不知道为什么会这样,但我希望它可以让别人像我一样把头发拉出来。
料青山看我应如是
TA贡献1772条经验 获得超8个赞
在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();
干杯。
添加回答
举报
0/150
提交
取消