【问题标题】:Laravel Send "create password email" after admin created new user from Admin Dashboard管理员从管理员仪表板创建新用户后,Laravel 发送“创建密码电子邮件”
【发布时间】:2021-03-05 13:59:54
【问题描述】:

我有一个管理仪表板。用户不能自己创建用户帐户,只有管理员有权这样做。但他只会创建一个带有“用户名”和“电子邮件”的用户。我想要实现的是当他创建一个新用户以使用他的“用户名”和“电子邮件”+按钮或链接向用户电子邮件地址发送电子邮件以创建他的密码时。我试图搜索有关自定义默认重置密码功能的信息,但失败了。有人可以为此提供一些更简单的方法吗?谢谢

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我认为这很容易,而且在我看来,如果您开始考虑“如何自定义现有功能”而不是“如何创建自己的功能”,那么您很快就会自己弄清楚。

    您可以这样做,例如,在注册用户后,您可以在注册电子邮件中发送“设置我的密码”链接,该链接可能类似​​于https://example.com/user/finish-registration?hash=sadfjasdnfdaisfnsduff

        //migration
        Schema::create($table, function() => {
            $table->string("set_password_hash");
            $table->string("username");
        });
    
        //signup method
        public function signUpUser(Request $request) {
            
            $user = new User();
            $user->username = $request->input("username");
            $user->email = $request->input("email");
    
            $user->set_password_hash = Hash::make(20); //or some random hash generator
    
            //set as empty string
            $user->password = "";
            $user->save();
    
            $signupMail = new SignupMail($user);
            $signupMail->send();
        }
    
        public function setPasswordView(Request $request) {
            $user = User::where("set_password_hash", $request->input("hash"))->first();
    
            if($user) {
                if($user->password === "") {
                    //display a form for the user to create his own password
                    return view("user.setPassword");
                } else {
                    //the password has already been set    
                }
            }
    
            //fail or something
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      相关资源
      最近更新 更多