Php 当用户在Laravel8.x中注册时,如何自动生成密码?

Php 当用户在Laravel8.x中注册时,如何自动生成密码?,php,laravel,Php,Laravel,我是新来的拉雷维尔和学习拉雷维尔8.x 在注册页面中,用户将获得两个字段,在这两个字段中,他/她只能输入姓名和电子邮件。单击“注册”后,我想发送邮件,用户将在其中获得可以登录的电子邮件和密码 我提到了,但我无法跟进 任何帮助都可以。感谢在other中遵循SOLID原则,我建议您编写一个事件和一个侦听器,以便注册控制器只处理注册,侦听器将在用户注册时发送电子邮件,事件将通过其构造函数收集用户的电子邮件,并将其传递给侦听器,侦听器将发送电子邮件 您可以使用此命令生成密码 使用light\Suppor

我是新来的拉雷维尔和学习拉雷维尔8.x

在注册页面中,用户将获得两个字段,在这两个字段中,他/她只能输入姓名和电子邮件。单击“注册”后,我想发送邮件,用户将在其中获得可以登录的电子邮件和密码

我提到了,但我无法跟进


任何帮助都可以。感谢

在other中遵循SOLID原则,我建议您编写一个事件和一个侦听器,以便注册控制器只处理注册,侦听器将在用户注册时发送电子邮件,事件将通过其构造函数收集用户的电子邮件,并将其传递给侦听器,侦听器将发送电子邮件

您可以使用此命令生成密码

使用light\Support\Facades\Hash

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

在laravel中重置密码需要生成一个令牌,并将其与URL和电子邮件一起发送给用户,因此我在laravel 7中使用了这个技巧

    $email = $request->input('email');

    $user = User::where('email', $email)->first();

    $token = app(\Illuminate\Auth\Passwords\PasswordBroker::class)->createToken($user);

    $currentURL = request()->getHttpHost();

    $fullLink = $currentURL . '/password/reset/' . $token . '?email=' . $email;

   $details = [
        'title' => 'Whatever you want to use as your message',
        'body' => "click the link to reset your password " . $fullLink
    ];

    Mail::to($email)->send(new Gmail($details));

我有一些资料教你如何创建事件和侦听器以及如何发送电子邮件,请查看我的

你可以使用bcrypt助手功能:

$password = bcrypt(Str::random(6));

来源

欢迎来到SO!当你发布一个问题时,尽量提供最少的信息。你试了什么?