Auth Routes in laravel 8

Viewed 2974

I'm beginner in Laravel 8. I want users not to go to the 'login' and 'register' routes when they are logged in. I'm using jetstream but I'm not using the routes and views that jetstream have view/routes. I tried but couldn't find the solution. How can I do that?

My route is:

Route::get('/register', [HomeController::class, 'register'])->name('register');
Route::get('/login', [HomeController::class, 'login_page'])->name('login');

My controller is:

    public function register(){
        return view('design2.registerpage');

        
    }

    public function login_page(){
        return view('design2.loginpage');
    }
3 Answers

You could use a middleware

It allows you to intercept a request, check if the user is logged in and redirect if he is.

You might want to try using guest middleware

Route::get('/register', [HomeController::class, 'register'])->name('register')->middleware('guest');
Route::get('/login', [HomeController::class, 'login_page'])->name('login')->middleware('guest');

Laravel UI Auth All Routes:

    // Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');

// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');

// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');

// Confirm Password (added in v6.2)
Route::get('password/confirm', 'Auth\ConfirmPasswordController@showConfirmForm')->name('password.confirm');
Route::post('password/confirm', 'Auth\ConfirmPasswordController@confirm');

// Email Verification Routes...
Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify'); // v6.x
/* Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify'); // v5.x */
Route::get('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
Related