重用密码代理逻辑发送激活邮件
Reuse password broker logic to send activation email
我有一个简单的 CRUD 应用程序,可以在其中通过表单添加用户,理想的流程是
- 管理员使用用户名和密码填写表单
- 向用户发送一封电子邮件,其中包含 link 以设置密码
- 用户已登录
归根结底,我真正想要的是 PasswordBroker 做的,而是发送 emails.passsowrd 视图,我想要一个不同的视图,其余逻辑可以相同
有没有简单的方法来创建 passwordBroker 的有效实例并传递不同的视图?
属性 emailWiew 受到保护,因此我无法覆盖它,我试图从 IoC 中创建一个新实例
$tokens = $this->app['auth.password.tokens'];
$users = $this->app['auth']->driver()->getProvider();
$view = "emails.createPassword";
$password = new PasswordBroker(
$tokens, $users, $this->app['mailer'], $view
);
dd($users->retrieveByCredentials(["email@user.com"])); //i get null and the user email is valid
$response = $password->sendResetLink(["email@user.com"], function (Message $message) {
$message->subject("Set your password");
});
dd($response); // I get "passwords.user" wich is an error
但是当我传递电子邮件地址时,出现无效用户错误
有什么想法吗?
问题是您没有提供检索凭据的密钥,因此它试图通过名称“0”在用户 table 中获取一个字段。使用以下内容,它将起作用:
$response = $password->sendResetLink(
["email" => "email@user.com"],
function (Message $message) {
$message->subject("Set your password");
});
我有一个简单的 CRUD 应用程序,可以在其中通过表单添加用户,理想的流程是
- 管理员使用用户名和密码填写表单
- 向用户发送一封电子邮件,其中包含 link 以设置密码
- 用户已登录
归根结底,我真正想要的是 PasswordBroker 做的,而是发送 emails.passsowrd 视图,我想要一个不同的视图,其余逻辑可以相同
有没有简单的方法来创建 passwordBroker 的有效实例并传递不同的视图?
属性 emailWiew 受到保护,因此我无法覆盖它,我试图从 IoC 中创建一个新实例
$tokens = $this->app['auth.password.tokens'];
$users = $this->app['auth']->driver()->getProvider();
$view = "emails.createPassword";
$password = new PasswordBroker(
$tokens, $users, $this->app['mailer'], $view
);
dd($users->retrieveByCredentials(["email@user.com"])); //i get null and the user email is valid
$response = $password->sendResetLink(["email@user.com"], function (Message $message) {
$message->subject("Set your password");
});
dd($response); // I get "passwords.user" wich is an error
但是当我传递电子邮件地址时,出现无效用户错误
有什么想法吗?
问题是您没有提供检索凭据的密钥,因此它试图通过名称“0”在用户 table 中获取一个字段。使用以下内容,它将起作用:
$response = $password->sendResetLink(
["email" => "email@user.com"],
function (Message $message) {
$message->subject("Set your password");
});