Я создал приложение laravel с помощью пользовательской аутентификации. Почему пользователь может войти в систему, используя только номер мобильного телефона. И как только они введут номер мобильного телефона и отправят, они получат одноразовый пароль на мобильный телефон в виде смс. И на следующем экране они должны ввести одноразовый пароль и войти в систему. И я успешно реализовал эту функцию.
Но моя проблема в том, что когда я проверяю одноразовый пароль, если он правильный, он входит в систему и если он неверный, я получаю сообщение об ошибке Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST. , я не знаю, что вызывает эту ошибку, так как все маршруты только в POST.
Пожалуйста, дайте мне понять, если это неверный пароль, страницу следует перенаправить на той же странице с сообщением об ошибке «Одноразовый пароль не совпадает».
Мой маршрут:
Auth::routes(['login' => false]);
Route::get('/home', 'HomeController@index')->name('home');
Route::post('/otp', 'AuthController@showOtpForm')->name('otp');
Route::post('/loginsuccess', 'AuthController@loginsuccess')->name('loginsuccess');
И тег формы на Login.blade. php выглядит следующим образом
<form class="login-form" action="{{ route('otp') }}" method="post">
И тег формы и скрытое значение со страницы входа в систему на otp.blade. php выглядит следующим образом
<form class="login-form" method="POST" action="{{ route('loginsuccess') }}">
<input type="hidden" value="{{ $phone }}" name="phone">
А мой Auth Controller выглядит следующим образом:
public function showOtpForm(Request $request)
{
try
{
$newotp = mt_rand(100000, 999999);
$user = User::where('phone', $request->phone)->firstOrFail();
$user->otp = $newotp;
$user->save();
return view('auth.otp')->with('phone', $request->phone);
}
catch(ModelNotFoundException $e)
{
//dd(get_class_methods($e)); // lists all available methods for exception object
echo "No user found, please register or try again later.";
}
}
public function loginsuccess(Request $request)
{
try
{
$user = User::where('phone', $request->phone)->firstOrFail();
if($user->otp === $request->otp)
{
Auth::login($user);
return redirect()->route('home');
}else{
return redirect()->back();
}
}
catch(ModelNotFoundException $e)
{
dd($e);
}
}
Пожалуйста, помогите мне проверить, если правильный одноразовый пароль означает, что он должен go маршрутизировать ('home'), а если неправильный одноразовый пароль, его следует перенаправить на ту же страницу, на которой пользователи вводят одноразовый пароль. но с ошибкой.