每当用户在laravel 5.4中成功重置他/她的密码时,我想重定向到登录页面。
目前,成功重置后,它会重定向到仪表板页面。 我环顾四周所有人都说要放置 protected $ redirectTo =' / home&#39 ;;在受保护的$ redirectTo =' /&#39 ;; 但它没有给我任何解决方案。
答案 0 :(得分:2)
默认情况下,Laravel会在重置密码后对用户进行身份验证。因此,无法重定向到登录页面,因为只有访客用户才能查看登录页面。即使您将$redirectTo
设置为/login
,访客中间件也会将用户重定向回/home
,因为用户已通过身份验证。
如果您需要阻止用户在重置密码时自动登录并将其重定向到登录页面,则需要按照以下步骤操作。
在位于ResetPasswordController
的{{1}}进行以下更改。
将重定向路径更改为登录页面。
app/Http/Controllers/Auth
覆盖protected $redirectTo = '/login';
方法以防止用户登录。将其添加到控制器。
resetPassword
在顶部添加
protected function resetPassword($user, $password)
{
$user->forceFill([
'password' => bcrypt($password),
'remember_token' => Str::random(60),
])->save();
}
use Illuminate\Support\Str;
特征中的原始方法如下所示。
ResetsPasswords
编辑:要在重定向上发送自定义响应,您可以覆盖控制器中的protected function resetPassword($user, $password)
{
$user->forceFill([
'password' => bcrypt($password),
'remember_token' => Str::random(60),
])->save();
$this->guard()->login($user);
}
并添加任何自定义会话/ Flash消息。默认情况下,laravel会在成功重置密码时设置自己的响应。
sendResetResponse
答案 1 :(得分:0)
密码成功重置后。它应该自动将会话/ cookie设置为登录用户。尝试取消设置会话/ cookie,中间件将检测到没有登录发生,您应该在成功重置密码后重定向到/ login页面。