我正在使用 laravel 6。我第一次尝试为我的 laravel 项目实现忘记密码。我自定义了登录、忘记密码、重置密码页面的默认设计。我已经集成了mailtrap
用于发送电子邮件。我已经成功地实现了这样的流程 -
- 单击忘记密码链接
- 获取用户输入电子邮件并单击发送重置链接的页面
- 获取重置链接和数据的电子邮件,例如
email, token , created_at
商店在password_reset
table
- 单击带有令牌和电子邮件网址的重置链接页面会在新选项卡中打开(打开包含电子邮件、新密码、确认密码的重置密码页面)
此外,当我输入新密码并确认密码并单击Reset Password
, 什么都没发生。
my 重置.blade.php
<form id="sign_in" name="sign_in" method="POST" action="{{ route('password.update') }}" data-parsley-validate >
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<h1>Reset Password</h1>
<div class="col-md-12 col-sm-12 form-group has-feedback">
{{-- <label for="login_id"><span style="color:red;">*</span>Login ID</label> --}}
<input id="email" type="email" class="form-control has-feedback-left @error('email') is-invalid @enderror" placeholder="Email" name="email" value="{{ $email ?? old('email') }}" required autocomplete="email" autofocus/>
<span class="fa fa-envelope form-control-feedback left" aria-hidden="true"></span>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="col-md-12 col-sm-12 form-group has-feedback">
<input id="password" type="password" class="form-control has-feedback-left @error('password') is-invalid @enderror" placeholder="Password" name="password" required autocomplete="new-password" />
<span class="fa fa-pencil form-control-feedback left" aria-hidden="true"></span>
</div>
<div class="col-md-12 col-sm-12 form-group has-feedback">
<input id="password-confirm" type="password" class="form-control has-feedback-left" placeholder="Confirm Password" name="password_confirmation" required autocomplete="new-password" />
<span class="fa fa-pencil form-control-feedback left" aria-hidden="true"></span>
</div>
<button type="submit" class="btn btn-success">Reset Password</button>
</div>
<div class="clearfix"></div>
</form>
我已经生成了默认控制器auth
例如“ConfirmPasswordController、ForgotPasswordController、ResetPasswordController、VerificationController”
重置密码控制器
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ResetsPasswords;
class ResetPasswordController extends Controller
{
/*
|--------------------------------------------------------------------------
| Password Reset Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling password reset requests
| and uses a simple trait to include this behavior. You're free to
| explore this trait and override any methods you wish to tweak.
|
*/
use ResetsPasswords;
/**
* Where to redirect users after resetting their password.
*
* @var string
*/
protected $redirectTo = '/dashboard';
}
我已经使用了默认路由auth
like Auth::routes();
如何在数据库中重置密码users
生成的电子邮件和令牌表password_reset
表以及如何显示“密码重置成功”消息? This is not working in my case.
userstable not changing with new password and entry not gets removed from
一旦重置成功完成,password_reset`表。
为了使这项工作顺利进行,我必须在哪里以及做出哪些改变?请指导。提前致谢。
我遇到了同样的问题,我能够通过这种方式解决它,
首先我添加一条路线:
Route::get('password/reset/{token}', [App\Http\Controllers\Auth\ResetPasswordController::class, 'showResetForm'])->name('password.reset');
接下来我添加reset.blade.php
<input type="hidden" name="token" value="{{$token}}">
就是这样,它对我有用。也许有人也需要它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)