laravel - Laravel 5.5 重置密码没有电子邮件字段
问题描述
我没有遇到要求您在重置请求期间确认您的电子邮件地址的网站,这似乎是一个不必要的步骤,我希望我的用户只能输入密码和密码确认,但不能输入电子邮件。
我想知道是否有解决方案,我正在考虑一个简单的解决方案,我将像这样在重置链接中将用户电子邮件地址作为参数传递
website.com/verify/{{reset_token}}/{{email}}
然后我将检索此电子邮件参数并将其传递给隐藏的输入值,但我不知道如何将电子邮件地址附加到重置链接。
如果每个人都知道任何解决方案,请在评论中告诉我
谢谢你的帮助
解决方案
我希望你使用的是默认的 Laravel 路由......
// Don't forget to add the names to these routes.
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.forgot.get');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.forgot.post');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset.get');
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.reset.post');
然后运行
php artisan make:mail PasswordResetMail
然后在您的用户模型中,添加此功能
public function sendPasswordResetNotification($token)
{
Mail::send(new PasswordResetMail($this));
}
然后在PasswordResetMail中,然后在您的构造函数中,您将获得用户
public function __construct($user)
{
$this->user = $user;
}
然后将用户与令牌一起传递给刀片视图,然后在刀片文件中添加路由
route('password.reset.get', ['token' => $token, 'email' => urlencode($user->email)]);
这将通过电子邮件作为
?email=useremail%40gmail.com // Should be urlencoded
然后,在您的重置表单中,将其添加为
<input type="hidden" value="{{ urldecode(request()->get('email')) }}" name="email">
应该很好去:)
推荐阅读
- spring - 看不到 keycloak 登录表单
- javascript - “Access-Control-Allow-Origin”标头的值不等于提供的原点,但它是
- javascript - Highcharts solidgauge 弧形,5 种不同的纯色(无渐变)
- python - Pyserial:readline() 是阻塞的,虽然定义了超时
- aws-api-gateway - 如何在 AWS SAM 中为 HTTP ApiGateway 配置 IAM 授权方?
- amazon-web-services - S3 event notification body content
- python - How can you output something when login is completed? Django allauth
- json - Oracle 19c Inserting data from JSON into a table in PL/SQL
- python-3.x - jupyter notebook running issues
- python - 对数刻度中的 Matplotlib 奇怪的垂直线