namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use App\User; use Illuminate\Support\Facades\Mail; use App\Mail\TwoFactorAuth; class AuthController extends Controller { public function showLoginForm() { return view('auth.login'); } public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { $user = Auth::user(); $user->generateTwoFactorCode(); Mail::to($user->email)->send(new TwoFactorAuth($user->two_factor_code)); return view('auth.verify'); } return back()->withErrors(['email' => 'Invalid credentials']); } public function verify(Request $request) { $user = Auth::user(); if ($request->input('code') == $user->two_factor_code) { $user->resetTwoFactorCode(); return redirect()->intended('dashboard'); } return back()->withErrors(['code' => 'Invalid two factor code']); } }