0
我正在构建一个密码重置机制,除了一个小奇怪的问题外,它工作得很好。如果在Password :: reset()部分调用,则Redirect::to('/login')
不起作用。Laravel 4重定向::如果从密码中调用不起作用::重置
Password::reset($credentials, function($user, $password) {
$user->password = Hash::make($password);
$user->save();
return Redirect::to('/login');
});
但是它的工作原理,如果我把它放在外面:
Password::reset($credentials, function($user, $password) {
$user->password = Hash::make($password);
$user->save();
});
return Redirect::to('/login');
但在这种情况下,我如何验证用户的电子邮件属于实际令牌?
理想我想这样的事情
Password::reset($credentials, function($user, $password) {
$user->password = Hash::make($password);
$user->save();
return Redirect::to('/login'); // success you may use your new password
});
return Redirect::to('/reset'); // validation falied try one more time
如果密码重置在这里失败,则关闭将不会被执行,并且密码重置::将重定向巴CK到同一页面。这样做会执行相同的密码检查,并在一个循环中再次重定向回到同一页面。大概需要在Password :: reset之前进行某种检查,以防万一我们来自错误,然后重定向回表单或仅在此页面中显示一条消息? – Jason
请注意,在密码重置失败时,以上将立即重定向。将没有机会将输入数据闪烁到表单中以重新呈现给用户。为了解决这个问题,在调用'return Password :: reset(...)'之前做一个'Input :: flash();'。您不想重新显示密码及其确认,但它有助于再次显示用户的电子邮件:Form :: text('email'),Input :: old('email'))'。 – Jason