0

少し奇妙な問題を除いて、うまく機能するパスワードリセットメカニズムを構築しています。Redirect::to('/login')Password::reset() 部分で呼び出された場合は機能しません。

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
4

1 に答える 1

4

パスワードのリセットに関するドキュメントを注意深く確認してPassword::reset()ください。閉鎖の結果が返されることに注意してください。Redirect::toこれが、コールを返すことでこれを達成する方法です。

質問の「理想的な」バージョンを使用して、return直前にステートメントを追加し、次Password::reset()の呼び出しの前に検証チェック/リダイレクトを移動することに注意してPassword::reset()ください。

if( ! VALIDATION FAILED )
{
    return Redirect::to('/reset'); // validation failed, try one more time
}

return Password::reset($credentials, function($user, $password) {
      $user->password = Hash::make($password);
      $user->save();
      return Redirect::to('/login'); // success, you may use your new password
});

ドキュメントの例では、次のようになります。

ここに画像の説明を入力

于 2013-09-11T12:59:42.303 に答える