【问题标题】:How can I disable the guard during authentication on Forge如何在 Forge 身份验证期间禁用防护
【发布时间】:2018-09-30 21:33:06
【问题描述】:

这是我在我的供应商文件夹中的 RegisterUsers.php 中的内容:

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

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

    //$this->guard()->logout();

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

在我的 RegisterController 中,从 auth 文件夹中,我有以下内容:

protected function create(array $data)
{
    Session::flash('status', 'Please verify your email for account activation');
    //if $request->role_id == '2' then save the role_id
    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'verifytoken' => Str::random(40),
        'role_id' => $data['role_id']
    ]);
    $thisUser = User::findOrFail($user->id);
    $this->sendEmail($thisUser);
    return $user;
}

我使用 forge 部署了我的网站,但我只是注意到我的注册与在 localhost 上的注册不同。

当用户注册时,系统会自动让他登录。在本地主机上,我禁用了守卫,但那是在供应商文件夹中。

由于我无法上传供应商文件夹,我该如何在实时环境中禁用防护?

【问题讨论】:

  • 您不需要更新供应商文件夹,您发布的代码在RegisterController 内,所以它应该可以工作,您能解释一下吗?
  • @utdev 我编辑了我的问题。粘贴的代码不在RegisterController中
  • 嗯好吧,为什么你不能更新供应商文件夹中的文件?你使用的是哪个 laravel 版本?
  • 实际上它现在可以工作了。我运行了 composer install 命令来添加供应商文件夹并编辑了 RegistersUsers.php
  • 很好,但请在下面查看我的答案,这是一种更好的方法,它不是更改供应商类的好习惯,我的答案提供了一个解决方案,您不需要覆盖供应商文件

标签: laravel forge


【解决方案1】:

您可以覆盖注册方法。 Auth\RegisterController: 使用供应商提供的 RegistersUsers;

所以你可以像这样简单地创建一个方法:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-26
    • 2019-02-26
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多