stephenjude/filament-jetstream

[Bug]: There is no way to use forgot password / reset password features when filament has a panel with login

Closed this issue · 3 comments

What happened?

With a panel like this:

        $panel
            ->default()
            ->id('app')
            ->path('app')
            ->login()
            ->registration()
            ->passwordReset()
            ->emailVerification()

By default the package rediret jetstream auth pages to the panel pages:

Route::redirect('/login', '/app/login')->name('login');

Route::redirect('/register', '/app/register')->name('register');

Route::redirect('/dashboard', '/app')->name('dashboard');

It works for GET routes, but did not work for Reset Password routes

I tried by adding to the web.php file the routes, but it did not work

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

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

How to reproduce the bug

Install Filament with a panel id and path app, then install the filament jetstream package and try to use forgot password feature

Package Version

2

PHP Version

8.2

Laravel Version

11

Which operating systems does with happen with?

No response

Notes

I tried in different ways, I was able to track changes to: namespace Filament\Pages\Auth\PasswordReset\RequestPasswordReset

in line 72 I found that the Notification builds by default the forgot password with Filament, the issue is that the base notification that is Illuminate\Auth\Notifications\ResetPassword uses a predefined named route and here I think that is the issue.

I am not able to replicate this bug.

Password reset works fine and it's all Filament feature.

SCR-20240803-ihq

SCR-20240803-ih7

Hi @stephenjude thanks I create a new project, but now I test the forgot password from filament first and then installed the package, I found that as Laravel 11 set by default in the .env file:

QUEUE_CONNECTION=database

Then it works, but it requires to run queues, in this case I change it to:

QUEUE_CONNECTION=sync

And it works at the moment, then I try to install your jetstream package and it works like a charm, just to check I also create another panel so I have app and admin panels and in both cases everything works fine.

Congrats for the package, as far as I can dive into the code I found that you rely authentication features in filament and set jetstream for all the features internally, overriding the files that makes all the jetstream features available for a filament app, thanks for your great package, I also try to set both panels with jetstream copying the configuration from the panel that uses filament to other panel and all works.

Thanks, sorry for adding a unexisting issue

You are welcome.