Question

J'essaie d'implémenter la logique de réinitialisation du mot de passe.L'utilisateur reçoit le lien pour réinitialiser le mot de passe dans l'e-mail.L'URL ressemble à

http://example.com/reset/resetcode

J'ai défini l'itinéraire pour cela :

Route::get('reset/{resetcode}', function(){
    return View::make('users.reset_password');
});

Le formulaire est rendu en vue de soumettre le email, new password etc.Pour la publication du formulaire, j'ai un itinéraire défini comme :

Route::post('reset/{resetcode}', array( 'as' => 'reset', 'uses' => 'UserController@passwordReset'));

je prends le resetcode depuis post route à l'intérieur de passwordReset contrôleur ci-dessous

public function passwordReset($resetcode)
{ 
    $validation = Validator::make(Input::all(), UserModel::$rulesPasswordReset);
    if ($validation->passes())
    { 
    try
    {
    // Find the user using the user email address
    $user = Sentry::findUserByLogin(Input::get('email'));

    // Check if the reset password code is valid
    if ($user->checkResetPasswordCode($resetcode))
    {
        // Attempt to reset the user password
        if ($user->attemptResetPassword($resetcode, 'new_password'))
        {
        // Password reset passed
         }
         else
         {
        // Password reset failed
         }
    }
    else
    {
        // The provided password reset code is Invalid
    }
        }
        catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
        {
       echo 'User was not found.';
        }
    }
    else return Redirect::route('reset')->withInput()
    ->withErrors($validation)
    ->with('title', 'resetrequestfailure')
    ->with('message', 'Seems like you made some errors.');
   }

Le problème que j'ai, c'est quand je le fais Redirect::route après l'échec de la validation. je reçois le resetcode à partir de l'itinéraire défini pour post.Lorsque la validation échoue, la route de redirection est erronée et je ne parviens pas à obtenir le resetcode la deuxième fois.L'URL supposée du format

 http://example.com/reset/8f1Z7wA4uVt7VemBpGSfaoI9mcjdEwtK8elCnQOb

devient

http://bcnet.org/reset/%7Bcode%7D

Cela a à voir avec /{resetcode} partie de l'itinéraire et cela est variable, alors comment puis-je obtenir le bon resetcode même après l'échec de la validation, ce qui signifie que l'URL reste intacte.Ou comment puis-je le réparer de manière appropriée Redirect::route après l'échec de la validation.

Était-ce utile?

La solution

Vous devez inclure le $resetcode à ton retour

else return Redirect::route('reset', $resetcode)->withInput()
    ->withErrors($validation)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top