emailConfirmations()->valid()->get(); $email = ''; if ($ec->count() == 0) { user()->sendEmailConfirmationLink($email = $user->email); } else { user()->sendEmailConfirmationLink($email = $ec[0]->email); } flash()->success("A new confirmation link was sent to your e-mail $email"); // not important, will fade return back(); } public function confirmEmailAndLogin(Request $request) { $input = $this->validate($request, [ 'token' => 'string|required', ]); $ec = EmailConfirmation::where('token', $input->token)->valid()->first(); if (!$ec) abort(400, "Invalid or expired token."); $u = $ec->user; if (!$u) abort(400, "User account does not exist."); if ($ec->email) $u->email = $ec->email; $wasConfirmed = $u->confirmed; $u->confirmed = true; $u->save(); $ec->delete(); \Auth::login($u, true); if ($wasConfirmed) { // user just changed an e-mail flash()->success("Your new e-mail $ec->email was confirmed!")->important(); } else { flash()->success("Your e-mail $ec->email was confirmed, your account is now active!")->important(); } return redirect(route('profile.view', $u->name)); } }