Laravel Password Reset Route not found

15,430

Solution 1

This is your reset route:

Route::post('/password/reset', 'Auth\PasswordController@reset');

And yet in your form, you aren't posting to this route:

<form action="" method="post">

Change your action:

<form action="/password/reset" method="post">

Solution 2

Set action of form to /password/reset

Share:
15,430
Nicolas
Author by

Nicolas

Student Interactive multimedia design (IMD) at Thomas More, Belgium. Always trying to learn and improve. Curious person, open for a challenge.

Updated on June 28, 2022

Comments

  • Nicolas
    Nicolas almost 2 years

    I'm trying to complete my password reset in laravel 5.2. Everything works, up until the last part.

    When I enter my email and the new password I receive the error

    MethodNotAllowedHttpException in RouteCollection.php line 219:

    Here are my routes

    Route::get('/password/reset/email', 'Auth\PasswordController@getEmail');
    Route::post('/password/reset/email', 'Auth\PasswordController@postEmail');
    
    Route::get('/password/email', 'Auth\PasswordController@sendResetLinkEmail');
    
    Route::get('/password/reset/{token}', 'Auth\PasswordController@showResetForm');
    Route::post('/password/reset', 'Auth\PasswordController@reset');
    

    And this is how my controller looks.

    <?php
    
    namespace App\Http\Controllers\Auth;
    
    use View;
    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\ResetsPasswords;
    
    class PasswordController extends Controller
    {
        /*
        |--------------------------------------------------------------------------
        | Password Reset Controller
        |--------------------------------------------------------------------------
        |
        | This controller is responsible for handling password reset requests
        | and uses a simple trait to include this behavior. You're free to
        | explore this trait and override any methods you wish to tweak.
        |
        */
    
        use ResetsPasswords;
    
        /**
         * Create a new password controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest');
        }
    
        public function getSendResetLinkEmailSuccessResponse()
        {
            return View::make('auth.passwordSent');
        }
    
        protected $redirectPath = '/';
    }
    

    Here's the Form:

    <form action="" method="post">
       <input type="hidden" name="_token" value="{{ csrf_token() }}">
    
     <div class="form-group">
       <label for="login-form-email">E-mail</label>
       <input type="email" name="email" id="email" class="form-control" tabindex="1" placeholder="Email" value="{{ old('email') }}">
     </div>
    
     <div class="form-group">
       <label for="login-form-password">New password</label>
       <input type="password" class="form-control" name="password" id="login-form-password" tabindex="2" placeholder="Password" tabindex="4">
     </div><!-- /.form-group -->
    
     <div class="form-group">
       <label for="login-form-password-retype">Confirm new password</label>
       <input type="password" class="form-control" name="password_confirmation" id="login-form-password-retype" tabindex="3" placeholder="Confirm password">
     </div><!-- /.form-group -->
    
     <div class="form-group">
       <input type="submit"  class="btn btn-primary pull-right" name="reset-confirm" id="reset-confirm" tabindex="4" value="Reset Password">
     </div>
    </form>
    

    Not sure why I'm getting this error and I can't find a solution to it. Hope you guys can help me out