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

Laravel 9+Jetstream注册后如何自动完成用户授权登录?

解决Laravel 9 + Jetstream + Inertia + Vue3注册后自动登录问题

修改Jetstream的CreateNewUser Action即可实现注册后自动认证,步骤如下:

  1. 打开项目中的 app/Actions/Fortify/CreateNewUser.php 文件
  2. 在文件顶部导入Auth门面:
use Illuminate\Support\Facades\Auth;
  1. 在create方法中,完成用户创建后添加登录逻辑:
public function create(array $input)
{
    Validator::make($input, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => $this->passwordRules(),
    ])->validate();

    $user = User::create([
        'name' => $input['name'],
        'email' => $input['email'],
        'password' => Hash::make($input['password']),
    ]);

    // 添加这行代码,注册后立即登录用户
    Auth::login($user);

    // 如果启用了Jetstream Teams功能,保留原有的团队创建逻辑(如果有)
    if (Jetstream::hasTeamFeatures()) {
        $this->createTeam($user);
    }

    return $user;
}

注意事项:

  • 如果项目启用了邮箱验证功能,默认Jetstream会阻止未验证邮箱的用户登录。若要强制登录,需修改config/fortify.php中的features,移除Features::emailVerification(),或者在登录后手动标记邮箱为已验证(不推荐,违反验证流程)。
  • 确保Inertia前端表单提交逻辑正常,注册成功后Jetstream会自动重定向到配置的默认路由(通常是dashboard),登录状态会同步到前端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:03:17