Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
подключил коробочную версию авторизации
решил сделать проверку на авторизованного пользователя и у же в зависимость от этого вызывать разные методы в контроллере
В файл роутев добавил код ниже. Вопрос насколько уместен такой вариант? Он работает.
Auth::routes();
Route::get('/', function() {
$HomeController = new HomeController;
if (Auth::check())
{
return $HomeController->allUsers();#for authorized users
} else {
return $HomeController->noAuth();# for unauthorized users
}
});
Не в сети
Отрывок из официальной документации...
Route middleware can be used to only allow authenticated users to access a given route. Laravel ships with an auth middleware, which is defined at Illuminate\Auth\Middleware\Authenticate. Since this middleware is already registered in your HTTP kernel, all you need to do is attach the middleware to a route definition:
Route::get('profile', function () {
// Only authenticated users may enter...
})->middleware('auth');
Роут сработает, если юзер авторизовался...(middleware('auth') вернет true)
Не в сети
Отрывок из официальной документации...
Route middleware can be used to only allow authenticated users to access a given route. Laravel ships with an auth middleware, which is defined at Illuminate\Auth\Middleware\Authenticate. Since this middleware is already registered in your HTTP kernel, all you need to do is attach the middleware to a route definition:
Route::get('profile', function () { // Only authenticated users may enter... })->middleware('auth');
Роут сработает, если юзер авторизовался...(middleware('auth') вернет true)
Да я понимаю но мне на одном роуте нужно вызвать разные методы в зависимости от авторизован пользователь или нет
Не в сети
Вопрос насколько уместен такой вариант? Он работает.
Laravel даёт большую свободу выбора способа реализации. Такой вполне допустим. Кашерен ли, другой вопрос.
Небольшая шлифовка - логику убрать в контроллер:
Route::get('/', 'HomeController@check');
А в методе check() уже делать проверку.
Не в сети
в роутах все-таки, наверное, неправильно проверки писать. Тогда уж лучше через конструктор контроллера
public function __construct()
{
$this->middleware('auth');
}
и тогда уже расписывать логику
Не в сети
Страницы 1