Создание функции сброса пароля без использования Laravel

Я имею дело с Laravel 5.6. Я использую аутентификацию JWT и создаю свой собственный контроллер аутентификации.

Это мой метод восстановления в AuthController,

public function recover(Request $request)
{
    $user = User::where('email', $request->email)->first();
    if (!$user) {
        $error_message = "Your email address was not found.";
        return response()->json(['success' => false, 'error' => ['email'=> $error_message]], 401);
    }
    try {
        Password::sendResetLink($request->only('email'), function (Message $message) {
            $message->subject('Your Password Reset Link');
        });
    } catch (\Exception $e) {
        $error_message = $e->getMessage();
        return response()->json(['success' => false, 'error' => $error_message], 401);
    }
    return response()->json([
        'success' => true, 'data'=> ['message'=> 'A reset email has been sent! Please check your email.']
    ]);
}

В почтальоне, если я выполняю метод восстановления, я получаю это сообщение

{
    "success": false,
    "error": "Route [password.reset] not defined." 
}

Как я могу справиться с этим. Спасибо!


person Rannie Ollit    schedule 13.02.2018    source источник


Ответы (2)


Вам нужно дать маршруту имя, в данном случае password.reset. В вашем routes.php (или там, где вы их определили) вызовите метод name:

Route::post('/password/reset', 'AuthController@recover')->name('password.reset');
person Community    schedule 13.02.2018

Если вы не запустили make:auth, у вас не определен маршрут, как говорит сама ошибка.
Попробуйте определить следующий маршрут в routes/web.php

Route::post('/pwdreset', 'AuthController@recover')
    ->name('password.reset');
person Sid    schedule 13.02.2018