You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetstream Laravel登录未校验数据库且返回登录页,如何配置登录后重定向路由

Laravel Jetstream 登录后跳转指定路由及用户校验问题修复方案

1. 修复用户信息校验逻辑

默认配置下如果未自定义登录校验规则,Jetstream可能不会主动抛出校验失败的提示,直接重定向回登录页,按以下步骤配置数据库校验规则:
打开app/Providers/FortifyServiceProvider.php,在boot方法中添加校验逻辑:

use Laravel\Fortify\Fortify;
use Laravel\Fortify\Http\Requests\LoginRequest;
use Illuminate\Validation\ValidationException;

public function boot()
{
    Fortify::authenticateUsing(function (LoginRequest $request) {
        // 从数据库查询用户
        $user = \App\Models\User::where('email', $request->email)->first();

        // 校验用户存在且密码匹配
        if (! $user || ! \Hash::check($request->password, $user->password)) {
            throw ValidationException::withMessages([
                'email' => ['账号或密码错误'],
            ]);
        }

        // 可选:自定义额外校验,比如账号是否启用、邮箱是否验证
        if (! $user->is_active) {
            throw ValidationException::withMessages([
                'email' => ['该账号已被禁用'],
            ]);
        }

        return $user;
    });
}

如果开启了邮箱验证功能,需要确认测试用户的email_verified_at字段不为空,或者在config/fortify.php的features数组中注释掉Features::emailVerification()关闭该特性。

2. 配置登录成功跳转规则

可根据需求选择任意一种配置方式:

  • 方式一:全局配置默认跳转地址
    打开config/fortify.php,修改home配置项为目标路由地址:
    // 直接写路径
    'home' => '/dashboard',
    // 或使用已注册的路由名
    'home' => env('FORTIFY_HOME', route('admin.dashboard')),
    
  • 方式二:自定义响应实现灵活跳转(支持按用户角色跳转)
    打开app/Providers/FortifyServiceProvider.php,在register方法中绑定登录响应:
    use Laravel\Fortify\Contracts\LoginResponse;
    
    public function register()
    {
        $this->app->instance(LoginResponse::class, new class implements LoginResponse {
            public function toResponse($request)
            {
                // 示例:管理员跳后台,普通用户跳个人中心
                if (auth()->user()->is_admin) {
                    return redirect()->route('admin.dashboard');
                }
                return redirect()->route('user.center');
            }
        });
    }
    

3. 生效配置

修改完成后执行以下命令清除缓存避免配置不生效:

php artisan config:clear
php artisan route:clear

内容的提问来源于stack exchange,提问作者Mohamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:15:00