Filament 自定义退出登录后的重定向路径

默认情况下,当您从 Filament 应用程序注销(退出)登录时,您将被重定向到 Filament 登录页面。

默认情况下,当您从 Filament 应用程序注销(退出)登录时,您将被重定向到 Filament 登录页面。但是,您可能希望在注销后重定向到其他页面。例如,重定向到网站主页或自定义的登录页面。

为此,您可以在 appHttpResponses 中创建一个实现 LogoutResponse 接口的自定义 LogoutResponse 类。此接口要求您实现一个返回 RedirectResponse 实例的toResponse 方法。

<?php
 
namespace AppHttpResponses;
 
use FilamentHttpResponsesAuthContractsLogoutResponse as Responsable;
use IlluminateHttpRedirectResponse;
 
class LogoutResponse implements Responsable
{
    public function toResponse($request): RedirectResponse
    {
        // 自定义重定向的路由
        return redirect()->route('home');
    }
}

然后,将 LogoutResponse 绑定到 AppServiceProvider 中的 LogoutResponseContract即可:

<?php
 
namespace AppProviders;
 
use AppHttpResponsesLogoutResponse;
use IlluminateSupportServiceProvider;
use FilamentHttpResponsesAuthContractsLogoutResponse as LogoutResponseContract;
 
class AppServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->app->bind(LogoutResponseContract::class, LogoutResponse::class);
    }
 
    ...
}