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

Laravel 8 注册表单中是否可以添加「Remember Me」功能?

解决方案

你找不到注册后的认证逻辑是因为RegistersUsers这个Laravel自带的特质封装了注册后的自动登录流程,你不需要修改源码,直接在当前RegisterController中扩展对应逻辑即可,具体修改步骤如下:

步骤1:修改注册页表单

在注册表单中添加「记住我」复选框,字段名设置为remember即可,示例代码:

<div class="form-check">
    <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
    <label class="form-check-label" for="remember">记住我</label>
</div>

步骤2:修改验证规则

修改validator方法,添加remember字段的可选验证规则:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'country' => ['required', 'string'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'remember' => ['nullable', 'boolean'], // 新增这行
    ]);
}

步骤3:重写注册方法支持记住我

首先在文件顶部引入Request类:

use Illuminate\Http\Request;

然后在RegisterController中添加重写的register方法,将记住我的参数传入登录逻辑:

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    $user = $this->create($request->all());

    // 登录时传入第二个参数为用户选择的记住我状态
    $this->guard()->login($user, $request->boolean('remember'));

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

修改完成后,用户注册时如果勾选「记住我」选项,系统会生成长期有效的登录Cookie,和登录页的「记住我」功能逻辑完全一致,默认会话到期后也不需要重新登录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:24:02