修改Laravel生成的注册逻辑

时间:2018-03-28 06:29:00

标签: php laravel laravel-5.6

所以,我仍然是Laravel的新手。作为我正在处理的应用程序的一部分,我想修改由

生成的注册逻辑
php artisan make:auth

为新注册的用户添加电子邮件验证。

我修改了生成的RegisterController上的create()方法,看起来像这样。

 protected function create(array   $data)
  {
      $user = User::create([

        'name' => $data['name'],

        'email' => $data['email'],

        'password' => Hash::make($data['password']),
    ]);

    // generate and store verification token

    $token = new Token; 
    $token->user_id = $user->id; 
    $token->token = str_randome(40); 
    $token->save(); 
    // send a verification e-mail to the 
    $this->sendVerificationEmail($user->id); 

    return $user;
}

所以,关于我的问题。假设我想在验证页面(已分配给$ redirectTo属性)上捕获返回的用户,以便应用程序知道如果所述用户请求重新发送电子邮件,则重新发送电子邮件的用户。实现这一目标的最佳方法是什么?

我应该创建一个像这样的新路线

 // Routes/web.php

Route::post(‘register/{$user}’, ‘RegisterController@showConfirmation’);

然后在我的RegisterController中

// RegisterController
public function showConfirmation($user)
{ return view(“accountConfirmation”)->([“user”=> $user]);}

还是有另一种方式吗?我想我的问题的路线是我还不太了解Laravel如何执行这个过程。但是,无论如何。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是的,您可以创建另一条路线但通过散列或加密您在网址中传递的用户数据或使用不同逻辑确认两次url参数来确保其安全 或者您可以简单地将用户从一种方法传递到控制器中的另一种方法 来自$this->showConfirmation( $user )方法的create()