get('tmpUserOTP'); if (!$user) { return redirect(RouteServiceProvider::HOME); } return view('auth.verify'); } /** * Check OPT request * * @param ValidateOtpRequest $request * @return \Illuminate\Http\RedirectResponse * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function check(ValidateOtpRequest $request) { //phpcs:enable Auth::login(session()->get('tmpUserOTP')); return \response()->redirectTo(RouteServiceProvider::HOME); } /** * Send OPT by SMS * * @return \Illuminate\Http\RedirectResponse */ public function sendOtpBySms() { $user = session()->get('tmpUserOTP'); if (!$user) { return back()->withErrors('User not found.'); } if (is_null($user->phone)) { return back()->withErrors('Phone number missing.'); } $otp = (new Totp())->GenerateToken(Base32::decode($user->totp_secret)); if (!$otp) { return back()->withErrors('Erreur lors de la génération du code OTP'); } /** @var \App\Lib\LDC\MailjetSms */ $mj = app('MailjetSms'); try { $mjResponse = $mj->send("OTP : " . implode(' ', str_split($otp)), $user->phone); /** @var \GuzzleHttp\Psr7\Response $mjResponse */ $responseStatus = $mjResponse->getStatusCode(); if ($responseStatus == 200) { return back()->with('success', 'SMS envoyé.'); } return back()->withErrors('SMS not sent.'); } catch (RequestException $e) { report($e); return back()->withErrors('Erreur lors de l\'envoi du SMS'); } } }