Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

ap1234's avatar

Route [password.reset] not defined in Multi Guard.

I have two guards back office users and users. I am getting this error while sending the reset link.

auth.php

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'backOfficeUser' => [
        'driver' => 'session',
        'provider' => 'backOfficeUsers',
    ],
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\admin\user\User::class,
    ],

    'backOfficeUsers' => [
        'driver' => 'eloquent',
        'model' => App\Models\admin\backOfficeUser\BackOfficeUser::class,
    ],
],

'passwords' => [
    'users' => [
        'provider' => 'users',
        'table' => 'password_resets',
        'expire' => 60,
        'throttle' => 60,
    ],

    'backOfficeUsers' => [
        'provider' => 'backOfficeUsers',
        'table' => 'password_resets',
        'expire' => 60,
        'throttle' => 60,
    ],
],

web.php

// Back Office Users Login Module
Route::controller(BackOfficeUserAuthController::class)->group(function () {
    Route::get('/', 'login')->name('backOfficeUser.login');
    Route::post('/auth', 'loginAuth')->name('loginAuth');
    Route::post('/recover-password', 'sendRecoverPasswordEmail')->name('backOfficeUser.send-password-recover-email');
    Route::get('/recover-password', 'showRecoverPasswordForm')->name('backOfficeUser.password-recover-form');
    Route::get('/recover-password/{token}', 'showResetPasswordForm')->name('backOfficeUser.password.reset');
    Route::post('/recover-password/update', 'validateResetPassword')->name('backOfficeUser.password.update');
});

Function from the controller

public function sendRecoverPasswordEmail(Request $request)
{
    $request->validate([
        'email' => ['required', 'email'],
    ]);

    $status = Password::broker('backOfficeUsers')->sendResetLink(
        $request->only('email')
    );

    return $status === Password::RESET_LINK_SENT
        ? back()->with(['status' => __($status)])
        : back()->withErrors(['email' => __($status)]);
}

How do I achieve two different flows for Back office users and Users using Guards?

0 likes
4 replies
ap1234's avatar

@Nakov Hello! Thankyou for your reply. This works for Back Office User but I want separate routes for users and backOfficeUse.

    ResetPassword::createUrlUsing(function ($user, string $token) {																																																									 
        return url(route('user.password.reset', [
        'token' => $this->token,
        ], false));
    });
ap1234's avatar

@Nakov Thankyou so much for your help! This works perfectly!

Please or to participate in this conversation.