Есть несколько способов подойти к этому.
1 - Если у вас всего пара пользователей-администраторов, вы можете написать добавить их как обычных пользователей, используя средства аутентификации по умолчанию, и добавить промежуточное ПО маршрутизации, которое запускается после промежуточного ПО аутентификации.Код для этого:
//Create this at app/Http/Middleware/Admin.php
namespace App\Http\Middleware;
use Illuminate\Auth\AuthenticationException;
class Admin
{
public function handle($request, \Closure $next)
{
$admins = [1,32,23];//place your admins IDs here
//I've hardcoded the admin ids, but you can also check them from a table Admins::all() or column such as auth()->user()->is_admin
if(!in_array(auth()->user()->id,$admins))
return throw new AuthenticationException('You are not allowed here');
return $next($request);
}
}
, затем добавьте объявление промежуточного программного обеспечения в app / Http / Kernel.php в $ routeMiddleware.
'admin' => App\Http\Middleware\Admin::class,
И используйте его на ваших административных маршрутах
Route::middleware(['auth','admin'])->group(function () {
//admin routes here
}
2 - Вы также можете заменить все этапы аутентификации на использование пользовательской модели, я делал это один или два раза, но у нее столько побочных эффектов, что просто не стоит.Но если вы решите сделать это, вы можете начать с расширения класса администратора с помощью Authenticable
use Illuminate\Foundation\Auth\User as Authenticatable;
Затем вам нужно будет пойти и также продублировать все файлы в app / Http / Auth, переопределить связкувещей, чтобы использовать свой пользовательский класс, затем продублируйте все представления, чтобы иметь логин, сбросить пароль и другие вещи.
Поверьте мне, оно того не стоит.Я бы выбрал первый вариант.