ConfirmsPasswords.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Illuminate\Foundation\Auth;
  3. use Illuminate\Http\JsonResponse;
  4. use Illuminate\Http\Request;
  5. trait ConfirmsPasswords
  6. {
  7. use RedirectsUsers;
  8. /**
  9. * Display the password confirmation view.
  10. *
  11. * @return \Illuminate\View\View
  12. */
  13. public function showConfirmForm()
  14. {
  15. return view('auth.passwords.confirm');
  16. }
  17. /**
  18. * Confirm the given user's password.
  19. *
  20. * @param \Illuminate\Http\Request $request
  21. * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
  22. */
  23. public function confirm(Request $request)
  24. {
  25. $request->validate($this->rules(), $this->validationErrorMessages());
  26. $this->resetPasswordConfirmationTimeout($request);
  27. return $request->wantsJson()
  28. ? new JsonResponse([], 204)
  29. : redirect()->intended($this->redirectPath());
  30. }
  31. /**
  32. * Reset the password confirmation timeout.
  33. *
  34. * @param \Illuminate\Http\Request $request
  35. * @return void
  36. */
  37. protected function resetPasswordConfirmationTimeout(Request $request)
  38. {
  39. $request->session()->put('auth.password_confirmed_at', time());
  40. }
  41. /**
  42. * Get the password confirmation validation rules.
  43. *
  44. * @return array
  45. */
  46. protected function rules()
  47. {
  48. return [
  49. 'password' => 'required|current_password:web',
  50. ];
  51. }
  52. /**
  53. * Get the password confirmation validation error messages.
  54. *
  55. * @return array
  56. */
  57. protected function validationErrorMessages()
  58. {
  59. return [];
  60. }
  61. }