Laravel Перенаправление с другой функции - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь создать валидатор кода авторизации, который можно использовать на нескольких экземплярах моего веб-сайта ... Я хочу сделать так, чтобы в случае сбоя проверки он перенаправлял пользователя из функции проверки (но это не работает) (аналогично тому, как работает собственная система проверки laravels для данных формы). Вот фрагменты моего кода, показывающие проблему.

// From a custom controller (AccountController.php)
public function requestValidate(Request $request, $token)
{
   $user = Auth::user();

   // This call should redirect to the homepage if the verification fails...
   // but instead... it does not redirect and executes return view('verified');
   $user->verifyAuthToken($request, $token);

   return view('verified');
 }

 // From User.php 
 public function verifyAuthToken(Request $request, $token)
 {
    if (trim($this->auth_code) === '' || trim($token) === '' || $this->auth_code !== $token) {
       $request->session()->flash('error', 'Sorry, an error occurred. Please try again.');

       // THIS DOES NOT REDIRECT
       return redirect()->route('profile');
    }

    $this->auth_code = "";
    $this->save();
 }

1 Ответ

0 голосов
/ 24 марта 2020

в вашем коде
return redirect()->route('profile'); это только нарушит процесс в вашей функции verifyAuthToken, но не в вашем requestValidate. Таким образом, после перенаправления страницы в профиль, она снова перенаправляется на проверенную страницу. Так что, может быть, вы можете вернуть True в случае успешной аутентификации, тогда в requestValidate вы можете сделать так:

if($user->verifyAuthToken($request, $token)){
  return view('verified');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...