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

如何修改Laravel Jetstream登录逻辑 新增is_admin=1身份校验规则

Laravel Jetstream Livewire 管理员专属登录功能实现方案

步骤1:修改登录表单新增隐藏字段

找到项目中登录视图文件 resources/views/auth/login.blade.php,在Livewire表单节点内插入隐藏输入框:

<input type="hidden" wire:model="is_admin" value="1">

步骤2:修改Livewire登录组件逻辑

找到登录组件文件 app/Http/Livewire/Login.php,按以下要求调整代码:

  • 新增公共属性接收前端传的is_admin参数
// 类顶部属性声明区域新增
public $is_admin;
  • 调整身份校验逻辑,在authenticate方法内新增管理员字段校验:
public function authenticate()
{
    $this->validate();

    // 优先校验账号是否为管理员
    $user = \App\Models\User::where('email', $this->email)->first();
    if ($user && $user->is_admin !== 1) {
        $this->addError('email', '当前账号无管理员登录权限');
        return;
    }

    // 常规账号密码校验逻辑
    if (! Auth::attempt($this->only('email', 'password'), $this->remember)) {
        $this->addError('email', trans('auth.failed'));

        return;
    }

    // 原有登录成功后的跳转逻辑保留不变
    return redirect()->intended(route('dashboard', absolute: false));
}

如果你不需要区分错误类型,也可以直接把is_admin条件加入Auth::attempt参数,代码更简洁:

if (! Auth::attempt([
    'email' => $this->email,
    'password' => $this->password,
    'is_admin' => 1
], $this->remember)) {
    $this->addError('email', trans('auth.failed'));
    return;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:36:08