Добавление аутентификации в маршруты - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу добавить аутентификацию в мои маршруты, у меня уже настроены логины, и я верю, что это функционально, но вы все равно можете получить доступ ко всему на моем сайте, даже если вы не вошли в систему, я бы хотел, чтобы сайт открывался на '/ Добро пожаловать », поскольку здесь есть кнопка входа. Когда пользователь войдет в систему, перейдите к представлению «/». Есть идеи, как бы я это сделал?

Route::get('/bookingforms/create/{requestID}', 'RequestFormsController@getPatientData');

Route::get('/completes/create/{bookingID}', 'BookingFormsController@getCompleteData');
Route::get('/incompletes/create/{bookingID}', 'BookingFormsController@getIncompleteData');

Route::post('/bookingform/submit', 'BookingFormsController@submit');

Route::get('/bookings', 'BookingFormsController@getBookings');

Route::get('/requestform', 'PagesController@getRequestForm');

Route::get('/waitinglist', 'RequestFormsController@getWaitingLists');

Route::post('/requestform/submit', 'RequestFormsController@submit');



Route::resource('requestforms', 'RequestFormsController' );
Route::resource('bookingforms', 'BookingFormsController');
Route::resource('completes', 'CompletesController');
Route::resource('incompletes', 'IncompletesController');



Route::get('/', 'PagesController@getHome');

Route::get('/about', 'PagesController@getAbout');

Route::get('/contact', 'PagesController@getContact');

Route::get('/welcome', 'PagesController@getWelcome');

Route::get('/login', 'LoginController@getLogin');

Route::get('/messages', 'MessagesController@getMessages');

Route::post('/contact/submit', 'MessagesController@submit');

Route::get('/register', 'RegisterController@getRegister');

Route::get('/logout', 'LoginController@logout');




Auth::routes();
Route::get('/', 'PagesController@getHome');
Route::get('/', 'HomeController@index');

  Route::prefix('admin')->group(function() {
    Route::get('/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login');
    Route::post('/login', 'Auth\AdminLoginController@login')->name('admin.login.submit');
    Route::get('/', 'AdminController@index')->name('admin.dashboard');
    Route::get('/messages', 'AdminController@index')->name('admin.messages');
  });

Ответы [ 3 ]

0 голосов
/ 16 апреля 2020

вы можете сгруппировать свои маршруты под промежуточным программным обеспечением auth следующим образом:

Route::middleware(['auth'])->group(function () {
    // your protected routes goes here
});

или защитить каждый маршрут индивидуально в конструкторе контроллера следующим образом:

public function __construct()
{
    $this->middleware('auth');
}

в сторону: почему вы определяете аутентификационные маршруты дважды?

0 голосов
/ 16 апреля 2020

Я бы сделал маршрут для логинов. Пусть это будет пост, чтобы вы могли хранить логины в своей базе данных. После успешного входа в систему вы можете передать пользователю JSON веб-токен. Пусть клиент сохранит этот веб-токен.

Затем вы можете добавить промежуточное программное обеспечение для аутентификации и вставить его в конвейер до того, как запрос будет передан вашей конечной точке. Попросите пользователя передать веб-токен и расшифровать его в промежуточном программном обеспечении аутентификации. Если все прошло успешно, передайте пользователя в конечную точку, в противном случае верните ответ и завершите запрос.

Промежуточное программное обеспечение имеет жизненно важное значение для аутентификации, авторизации, и вы можете добавить промежуточное программное обеспечение в конец вашего конвейера для проверки ошибок.

Если вам нужно больше, чем резюме, дайте мне знать, и я найду несколько примеров для вас.

0 голосов
/ 16 апреля 2020

Используете ли вы по умолчанию Auth от Laravel?

Если это так, проверьте документацию https://laravel.com/docs/7.x/authentication#protecting -routes

В противном случае вам придется создать промежуточное ПО для проверки сеанса входа в систему и, если пользователь не вошел в систему, верните перенаправление на URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...