Отправьте форму после подтверждения пароля в laravel - PullRequest
0 голосов
/ 11 ноября 2018

Я работаю над школьным проектом, который является банковским приложением. Пользователь может перевести средства, но прежде чем он сможет перевести, он должен подтвердить перевод, введя токен, отправленный на его электронную почту. До сих пор я смог сгенерировать токен и отправить его на электронную почту пользователя. Однако, когда пользователь вводит токен, он перенаправляется обратно в представление формы передачи, где ему нужно начинать заполнять форму заново, которая теперь отправляется, когда он нажимает кнопку инициировать передачу.

Вопрос: Как сделать так, чтобы он прошел сразу, он вводит правильный жетон. Я не хочу, чтобы пользователь снова заполнил форму. Вот мой контроллер токенов

public function verifyTwoFactor(Request $request)
        {
            $request->validate([
                '2fa' => 'required',
            ]);

            if ($request->input('2fa') == Auth::user()->token_2fa) {
                $user = Auth::user();
    //            $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(config('session.lifetime'));
                $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(1);
                $user->save();
                return redirect('/ibank/dashboard/interbank-transfer');
            } else {
                return redirect('/2fa')->with('message', 'Incorrect code.');
            }
        }
        public function verifyTwoFactor2(Request $request)
        {
            $request->validate([
                '2fa' => 'required',
            ]);

            if ($request->input('2fa') == Auth::user()->token_2fa) {
                $user = Auth::user();
    //            $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(config('session.lifetime'));
                $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(1);
                $user->save();
                return redirect('/ibank/dashboard/localbank-transfer');
            } else {
                return redirect('/2fa')->with('message', 'Incorrect code.');
            }
        }
        public function verifyTwoFactor3(Request $request)
        {
            $request->validate([
                '2fa' => 'required',
            ]);

            if ($request->input('2fa') == Auth::user()->token_2fa) {
                $user = Auth::user();
    //            $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(config('session.lifetime'));
                $user->token_2fa_expiry = \Carbon\Carbon::now()->addMinutes(1);
                $user->save();
                return redirect('/ibank/dashboard/transfer');
            } else {
                return redirect('/2fa')->with('message', 'Incorrect code.');
            }
        }

        public function showTwoFactorForm()
        {
            return view('auth.verify2fa');
        }

Мое промежуточное ПО выглядит так

   $user = Auth::user();
    if ($user->token_2fa_expiry > \Carbon\Carbon::now()) {
        return $next($request);
    }

    $user->token_2fa = mt_rand(10000, 99999);
    $user->save();

    Mail::to($user->email)->send(new Verify2fa($user));
    return redirect('/2fa');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...