Рекомендация аутентификации - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть Laravel веб-сайт с таблицей 'users', в которой хранится role_id, и таблицей 'companies', в которой хранится пользовательских постоянных ссылок . маршруты входа по умолчанию используются для пользователей с ролью ADMIN. Мне нужно добавить другие виды и маршруты для пользователей с ролью КЛИЕНТА. Таким образом, когда пользователь получает доступ к URL '/ custom-company-permalink-from-db' и не входит в систему, он должен быть перенаправлен на URL '/ custom-company-permalink -from-db / login '.

Вот мои маршруты:

Route::middleware('web')->group(function() {
    Auth::routes(['register' => false]);

    Route::get('/', ['uses' => 'HomeController@index', 'as' => 'home']);
    Route::get('/{company}', ['uses' => 'HomeController@overview', 'as' => 'overview']);
});

Route::namespace('Admin')->prefix('admin')->name('admin.')->middleware(['auth', 'check.if.admin'])->group(function() {
    Route::get('/dashboard', ['as' => 'dashboard', 'uses' => 'AdminController@dashboard']);
});

Я думаю добавить это в маршруты:

Route::get('/{company?}/login','Frontend\Auth\LoginController@showLoginForm')->name('client.login');

Затем скопируйте файлы app / Http / Controllers / Auth в app / Http / Controllers / Frontend / Auth и выполните необходимые действия. правки.

Есть ли другой способ добиться этого? Какой рекомендуемый способ?

1 Ответ

0 голосов
/ 20 февраля 2020

Поскольку вы разделяете пользователей на основе ролей, вы можете использовать один и тот же логин и различать маршруты на основе пространства имен. Внутри группы аутентификации создайте две группы: одну для администратора (существующую) и одну для клиентов. Вы уже используете промежуточное ПО для проверки, является ли пользователь администратором. Точно так же вы можете создать новое промежуточное ПО, чтобы проверить, является ли пользователь клиентом.

 Route::middleware('auth')->group....
    Route::namspace..prefix..->middleware('check.if.admin')->group(...
    ) //end check if admin group
    Route::namespace('client')->prefix('client')->middleware('check.client')->group(...)
 )//end auth group
...