GithubHelp home page GithubHelp logo

Override fortify route paths about fortify HOT 3 CLOSED

ekrist1 avatar ekrist1 commented on April 28, 2024
Override fortify route paths

from fortify.

Comments (3)

BulgarianHealer avatar BulgarianHealer commented on April 28, 2024 3

How Fortify::ignoreRoutes() works. I placed Fortify::ignoreRoutes() in the boot method of FortifyServiceProvider but it still showing the default auth routes when I hit php artisan route:list -c.

Why boot? Must be in register.

from fortify.

taylorotwell avatar taylorotwell commented on April 28, 2024 1

You can disable the routes via Fortify::ignoreRoutes() and then copy the routes into a file in your own application.

from fortify.

shankhadevpadam avatar shankhadevpadam commented on April 28, 2024

How Fortify::ignoreRoutes() works. I placed Fortify::ignoreRoutes() in the boot method of FortifyServiceProvider but it still showing the default auth routes when I hit php artisan route:list -c.

| POST     | login                            | Laravel\Fortify\Http\Controllers\AuthenticatedSessionController@store           |
| GET|HEAD | login                            | Laravel\Fortify\Http\Controllers\AuthenticatedSessionController@create          |
| POST     | logout                           | Laravel\Fortify\Http\Controllers\AuthenticatedSessionController@destroy         |
| POST     | register                         | Laravel\Fortify\Http\Controllers\RegisteredUserController@store                 |
| GET|HEAD | register                         | Laravel\Fortify\Http\Controllers\RegisteredUserController@create                |
| POST     | reset-password                   | Laravel\Fortify\Http\Controllers\NewPasswordController@store                    |
| GET|HEAD | reset-password/{token}           | Laravel\Fortify\Http\Controllers\NewPasswordController@create                   |
| GET|HEAD | two-factor-challenge             | Laravel\Fortify\Http\Controllers\TwoFactorAuthenticatedSessionController@create |
| POST     | two-factor-challenge             | Laravel\Fortify\Http\Controllers\TwoFactorAuthenticatedSessionController@store  |
| GET|HEAD | user/confirm-password            | Laravel\Fortify\Http\Controllers\ConfirmablePasswordController@show             |
| POST     | user/confirm-password            | Laravel\Fortify\Http\Controllers\ConfirmablePasswordController@store            |
| GET|HEAD | user/confirmed-password-status   | Laravel\Fortify\Http\Controllers\ConfirmedPasswordStatusController@show         |
| PUT      | user/password                    | Laravel\Fortify\Http\Controllers\PasswordController@update                      |
| PUT      | user/profile-information         | Laravel\Fortify\Http\Controllers\ProfileInformationController@update            |
| DELETE   | user/two-factor-authentication   | Laravel\Fortify\Http\Controllers\TwoFactorAuthenticationController@destroy      |
| POST     | user/two-factor-authentication   | Laravel\Fortify\Http\Controllers\TwoFactorAuthenticationController@store        |
| GET|HEAD | user/two-factor-qr-code          | Laravel\Fortify\Http\Controllers\TwoFactorQrCodeController@show                 |
| POST     | user/two-factor-recovery-codes   | Laravel\Fortify\Http\Controllers\RecoveryCodeController@store                   |
| GET|HEAD | user/two-factor-recovery-codes   | Laravel\Fortify\Http\Controllers\RecoveryCodeController@index    

I want to create a multi auth for frontend and backend. so for frontend, i used default fortify routes and for backend i used routes/admin.php just copying the fortify routes and modify the prefix and name like this. Is this a good way?

<?php

use Illuminate\Support\Facades\Route;
use Laravel\Fortify\Features;
use Laravel\Fortify\Http\Controllers\AuthenticatedSessionController;
use Laravel\Fortify\Http\Controllers\ConfirmablePasswordController;
use Laravel\Fortify\Http\Controllers\ConfirmedPasswordStatusController;
use Laravel\Fortify\Http\Controllers\EmailVerificationNotificationController;
use Laravel\Fortify\Http\Controllers\EmailVerificationPromptController;
use Laravel\Fortify\Http\Controllers\NewPasswordController;
use Laravel\Fortify\Http\Controllers\PasswordController;
use Laravel\Fortify\Http\Controllers\PasswordResetLinkController;
use Laravel\Fortify\Http\Controllers\ProfileInformationController;
use Laravel\Fortify\Http\Controllers\RecoveryCodeController;
use Laravel\Fortify\Http\Controllers\RegisteredUserController;
use Laravel\Fortify\Http\Controllers\TwoFactorAuthenticatedSessionController;
use Laravel\Fortify\Http\Controllers\TwoFactorAuthenticationController;
use Laravel\Fortify\Http\Controllers\TwoFactorQrCodeController;
use Laravel\Fortify\Http\Controllers\VerifyEmailController;

Route::group(['middleware' => config('fortify.middleware', ['web']), 'prefix' => 'admin', 'as' => 'admin.'], function () {
    // Authentication...
    Route::get('/login', function () {
    	return view('auth.login');
    })->name('login');

    $limiter = config('fortify.limiters.login');

    Route::post('/login', [AuthenticatedSessionController::class, 'store'])
        ->middleware(array_filter([
            'guest',
            $limiter ? 'throttle:'.$limiter : null,
        ]));

    Route::post('/logout', [AuthenticatedSessionController::class, 'destroy'])
        ->name('logout');

    // Password Reset...
    if (Features::enabled(Features::resetPasswords())) {
        Route::get('/forgot-password', [PasswordResetLinkController::class, 'create'])
            ->middleware(['guest'])
            ->name('password.request');

        Route::post('/forgot-password', [PasswordResetLinkController::class, 'store'])
            ->middleware(['guest'])
            ->name('password.email');

        Route::get('/reset-password/{token}', [NewPasswordController::class, 'create'])
            ->middleware(['guest'])
            ->name('password.reset');

        Route::post('/reset-password', [NewPasswordController::class, 'store'])
            ->middleware(['guest'])
            ->name('password.update');
    }

    // Registration...
    if (Features::enabled(Features::registration())) {
        Route::get('/register', [RegisteredUserController::class, 'create'])
            ->middleware(['guest'])
            ->name('register');

        Route::post('/register', [RegisteredUserController::class, 'store'])
            ->middleware(['guest']);
    }

    // Email Verification...
    if (Features::enabled(Features::emailVerification())) {
        Route::get('/email/verify', [EmailVerificationPromptController::class, '__invoke'])
            ->middleware(['auth'])
            ->name('verification.notice');

        Route::get('/email/verify/{id}/{hash}', [VerifyEmailController::class, '__invoke'])
            ->middleware(['auth', 'signed', 'throttle:6,1'])
            ->name('verification.verify');

        Route::post('/email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
            ->middleware(['auth', 'throttle:6,1'])
            ->name('verification.send');
    }

    // Profile Information...
    if (Features::enabled(Features::updateProfileInformation())) {
        Route::put('/user/profile-information', [ProfileInformationController::class, 'update'])
            ->middleware(['auth']);
    }

    // Passwords...
    if (Features::enabled(Features::updatePasswords())) {
        Route::put('/user/password', [PasswordController::class, 'update'])
            ->middleware(['auth']);
    }

    // Password Confirmation...
    Route::get('/user/confirm-password', [ConfirmablePasswordController::class, 'show'])
        ->middleware(['auth'])
        ->name('password.confirm');

    Route::post('/user/confirm-password', [ConfirmablePasswordController::class, 'store'])
        ->middleware(['auth']);

    Route::get('/user/confirmed-password-status', [ConfirmedPasswordStatusController::class, 'show'])
        ->middleware(['auth'])
        ->name('password.confirmation');

    // Two Factor Authentication...
    if (Features::enabled(Features::twoFactorAuthentication())) {
        Route::get('/two-factor-challenge', [TwoFactorAuthenticatedSessionController::class, 'create'])
            ->middleware(['guest'])
            ->name('two-factor.login');

        Route::post('/two-factor-challenge', [TwoFactorAuthenticatedSessionController::class, 'store'])
            ->middleware(['guest']);

        $twoFactorMiddleware = Features::optionEnabled(Features::twoFactorAuthentication(), 'confirmPassword')
            ? ['auth', 'password.confirm']
            : ['auth'];

        Route::post('/user/two-factor-authentication', [TwoFactorAuthenticationController::class, 'store'])
            ->middleware($twoFactorMiddleware);

        Route::delete('/user/two-factor-authentication', [TwoFactorAuthenticationController::class, 'destroy'])
            ->middleware($twoFactorMiddleware);

        Route::get('/user/two-factor-qr-code', [TwoFactorQrCodeController::class, 'show'])
            ->middleware($twoFactorMiddleware);

        Route::get('/user/two-factor-recovery-codes', [RecoveryCodeController::class, 'index'])
            ->middleware($twoFactorMiddleware);

        Route::post('/user/two-factor-recovery-codes', [RecoveryCodeController::class, 'store'])
            ->middleware($twoFactorMiddleware);
    }
});

from fortify.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.