【发布时间】:2016-04-09 11:00:48
【问题描述】:
我正在尝试分别对 user 表和 admin 表的 users 和 admin 表进行身份验证。我正在使用 laravel 开箱即用的 User 模型,并为 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');
});
我创建了一个名为 AuthAdmin 的目录,其中存在 Laravel 的默认 AuthController.php 和 PasswordController.php 文件。 (命名空间相应修改)
首先,在 Laravel 的文档中提到如何在像这样进行身份验证时指定自定义防护,这是行不通的。
在 Laravel 的文档中提到了另一种使用不工作的守卫的方法。
如果有人可以解决问题并在我错了时纠正我,那将是有益的。
【问题讨论】:
-
Laravel 修复了 5.2.6 版本中的一个错误。
protected $guard = 'guard_name'现在可以使用了。 -
在 Laravel 中有许多可用的管理面板生成器包。我更喜欢航海者管理员。轻松安装它们。它可以为您节省大量代码。你只需要了解它是如何工作的。不要重新发明轮子。 Voyager - The Missing Laravel AdminA Laravel application with Gentelella bootstrap admin tempalte.
标签: laravel laravel-5 laravel-5.2 laravel-authorization