Pregunta

Estoy intentando implementar la lógica de restablecimiento de contraseña.El usuario recibe el enlace para restablecer la contraseña en el correo electrónico.La URL parece

http://example.com/reset/resetcode

Tengo la ruta definida para ello:

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

El formulario se presenta en la vista para enviar el email, new password etc.Para el post del formulario tengo ruta definida como:

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

agarro el resetcode de post route dentro de passwordReset controlador a continuación

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.');
   }

El problema que tengo es cuando lo hago. Redirect::route después de que falle la validación. estoy consiguiendo el resetcode de la ruta definida para post.Cuando la validación falla, la ruta de redireccionamiento se estropea y no puedo obtener el resetcode la segunda vez.La supuesta URL de formato.

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

se convierte

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

Que tiene que ver con /{resetcode} parte de la ruta y esto es variable, entonces, ¿cómo puedo obtener la ruta correcta? resetcode incluso después de que la validación falle, lo que significa que la URL permanece intacta.¿O cómo puedo solucionarlo en el momento apropiado? Redirect::route después del error de validación.

¿Fue útil?

Solución

Necesitas incluir el $resetcode a tu regreso

else return Redirect::route('reset', $resetcode)->withInput()
    ->withErrors($validation)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top