2016-12-06 7 views
2

Я новичок в Laravel, и я делаю тест на систему, использующую версию 4.2. Я пытаюсь следовать за Documentation для сброса пароля. Пока я могу опубликовать свой адрес электронной почты для сброса пароля, и я получаю токен на своем электронном письме.Сброс пароля laravel 4.2 с помощью Token

Когда я открываю URL из письма с маркером я получаю эту ошибку:

exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException'

Адрес страницы: http://example.com/reset/20e2535a11f7c88d1132c55c752a3a8569adbf5f

Это мой маршрут

Route::get('/password', ['uses' => '[email protected]']); 
Route::get('/reset', ['uses' => '[email protected]']); 

Это в RemindersController

public function getReset($token = null) 
{ 
    if (is_null($token)) App::abort(404); 

    return View::make('site.reset')->with('token', $token); 
} 

И форма из ДИЗКНА

<form action="{{ action('[email protected]') }}" method="POST"> 
    <input type="hidden" name="token" value="{{ $token }}"> 
    <input type="email" name="email"> 
    <input type="password" name="password"> 
    <input type="password" name="password_confirmation"> 
    <input type="submit" value="Reset Password"> 
</form> 

Я понимаю ошибку .. это говорит о том, что путь/файл не найден, но он есть ..

+0

взгляд здесь http://stackoverflow.com/questions/29241969/reset-password-without-token-in-laravel-4-2 – Blueblazer172

+0

@ Blueblazer172 Я хочу использовать токен .. – VLS

+0

, тогда посмотрите [здесь] (https://laracasts.com/discuss/channels/laravel/get-a -password-reset-token/replies/90648) или [здесь] (htt p: //stackoverflow.com/a/26362002/5930557) – Blueblazer172

ответ

1

в вашей HTML форме, есть action() метод, называемый [email protected]:

<form action="{{ action('[email protected]') }}" method="POST"> 
    <input type="hidden" name="token" value="{{ $token }}"> 
    <input type="email" name="email"> 
    <input type="password" name="password"> 
    <input type="password" name="password_confirmation"> 
    <input type="submit" value="Reset Password"> 
</form> 

но маршрут использует GET. Вы должны использовать POST

изменить свой маршрут от:

Route::get('/reset', ['uses' => '[email protected]']); 

к:

Route::post('/reset', ['uses' => '[email protected]']); 

я думаю, вы могли бы использовать этот способ. его может быть лучше:

Route::match(['GET','POST'], ['uses' => '[email protected]']); 



Update: Маршрут должен также token в нем, потому что URL является /reset/token:

Route::get('/reset/{token}', ['uses' => '[email protected]']); 
+0

Но мой reset.blade находится в '/ site /' не в/'auth/' – VLS

+0

@VLS попытается изменить его на auth, а затем повторите попытку – Blueblazer172

+0

Я просто для теста, но я не хочу его там. – VLS

1

проверить, если ваш контроллер по умолчанию или по умолчанию контроллер безопасности не загружен где-то и не не перезаписывать «сброса» маршрут, получить в каталоге приложения с помощью командной строки и введите:

php artisan routes 

Это должно показать вам, если ваш маршрут зарегистрирован и к которому контроллер/действие.

+0

У меня нет доступа к ssh-терминалу и не удается выполнить команду – VLS

Смежные вопросы