В Laravel разделение функций входа администратора и пользователя является общим требованием для приложений с разными ролями и уровнями доступа. В этой статье мы рассмотрим различные методы достижения такого разделения, а также приведем примеры кода.
Метод 1: управление доступом на основе ролей (RBAC) с использованием промежуточного программного обеспечения.
Одним из популярных подходов является реализация управления доступом на основе ролей с использованием промежуточного программного обеспечения. Вот как это можно настроить:
Шаг 1. Создание промежуточного программного обеспечения
Создайте новое промежуточное программное обеспечение под названием AdminMiddleware
с помощью ремесленной команды Laravel: php artisan make:middleware AdminMiddleware
.
Шаг 2. Определите логику промежуточного программного обеспечения.
Откройте сгенерированный файл AdminMiddleware.php
и реализуйте метод handle
. Проверьте, имеет ли аутентифицированный пользователь роль администратора, и перенаправьте его на панель администратора, если это правда. В противном случае перенаправьте их на панель пользователя или отобразите сообщение об отказе в доступе.
public function handle($request, Closure $next)
{
if (auth()->check() && auth()->user()->isAdmin()) {
return redirect()->route('admin.dashboard');
}
return redirect()->route('user.dashboard')->with('error', 'Access denied.');
}
Шаг 3. Зарегистрируйте промежуточное программное обеспечение
В файле app/Http/Kernel.php
добавьте AdminMiddleware
в массив $routeMiddleware
:
protected $routeMiddleware = [
// ...
'admin' => \App\Http\Middleware\AdminMiddleware::class,
];
Шаг 4. Примените промежуточное программное обеспечение к маршрутам
В файле маршрутов (web.php
) используйте промежуточное программное обеспечение admin
для защиты маршрутов администратора:
Route::group(['middleware' => 'admin'], function () {
// Admin routes here
});
Метод 2: отдельные контроллеры и маршруты
Другой подход заключается в создании отдельных контроллеров и маршрутов для функций администратора и пользователя. Вот пример:
Шаг 1. Создайте контроллеры
Создайте UserController
и AdminController
с помощью команды artisan: php artisan make:controller UserController
и php artisan make:controller AdminController
.
Шаг 2. Определите маршруты
В файле маршрутов (web.php
) определите отдельные маршруты для функций администратора и пользователя:
// User Routes
Route::group(['prefix' => 'user', 'namespace' => 'App\Http\Controllers'], function () {
// User routes here
});
// Admin Routes
Route::group(['prefix' => 'admin', 'namespace' => 'App\Http\Controllers'], function () {
// Admin routes here
});
Шаг 3. Реализация контроллеров
В соответствующих контроллерах определите методы и логику для функций пользователя и администратора:
// UserController.php
class UserController extends Controller
{
// User methods and logic here
}
// AdminController.php
class AdminController extends Controller
{
// Admin methods and logic here
}
В этой статье мы рассмотрели два метода разделения входа администратора и пользователя в Laravel. Первый метод включал использование управления доступом на основе ролей (RBAC) с промежуточным программным обеспечением, а второй метод был сосредоточен на создании отдельных контроллеров и маршрутов для функций администратора и пользователя. Выберите подход, который лучше всего соответствует требованиям и структуре вашего приложения.
Реализация этих методов поможет вам четко разделить вход администратора и пользователя, обеспечив безопасную и организованную систему управления пользователями в вашем приложении Laravel.