ResetPasswordController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Foundation\Auth\ResetsPasswords;
  5. use Illuminate\Http\Request;
  6. class ResetPasswordController extends Controller
  7. {
  8. /*
  9. |--------------------------------------------------------------------------
  10. | Password Reset Controller
  11. |--------------------------------------------------------------------------
  12. |
  13. | This controller is responsible for handling password reset requests
  14. | and uses a simple trait to include this behavior. You're free to
  15. | explore this trait and override any methods you wish to tweak.
  16. |
  17. */
  18. use ResetsPasswords;
  19. /**
  20. * Where to redirect users after resetting their password.
  21. *
  22. * @var string
  23. */
  24. protected $redirectTo = '/';
  25. /**
  26. * Create a new controller instance.
  27. *
  28. * @return void
  29. */
  30. public function __construct()
  31. {
  32. $this->middleware('guest');
  33. }
  34. /**
  35. * Display the password reset view for the given token.
  36. *
  37. * If no token is present, display the link request form.
  38. *
  39. * @param \Illuminate\Http\Request $request
  40. * @param string|null $token
  41. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  42. */
  43. public function showResetForm(Request $request, $token = null)
  44. {
  45. return view('auth.passwords.reset')->with(
  46. ['token' => $token, 'username' => $request->username]
  47. );
  48. }
  49. /**
  50. * Get the password reset validation rules.
  51. *
  52. * @return array
  53. */
  54. protected function rules()
  55. {
  56. return [
  57. 'token' => 'required',
  58. 'username' => 'required|regex:/^[a-zA-Z0-9]*$/|max:20',
  59. 'password' => 'required|confirmed|min:8',
  60. ];
  61. }
  62. /**
  63. * Get the password reset credentials from the request.
  64. *
  65. * @param \Illuminate\Http\Request $request
  66. * @return array
  67. */
  68. protected function credentials(Request $request)
  69. {
  70. return $request->only(
  71. 'username',
  72. 'password',
  73. 'password_confirmation',
  74. 'token'
  75. );
  76. }
  77. /**
  78. * Get the response for a failed password reset.
  79. *
  80. * @param \Illuminate\Http\Request $request
  81. * @param string $response
  82. * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
  83. */
  84. protected function sendResetFailedResponse(Request $request, $response)
  85. {
  86. return back()
  87. ->withInput($request->only('username'))
  88. ->withErrors(['username' => trans($response)]);
  89. }
  90. }