<?php namespace Illuminate\Foundation\Auth; use Illuminate\Http\Request; use Illuminate\Auth\Events\Verified; use Illuminate\Auth\Access\AuthorizationException; trait VerifiesEmails { use RedirectsUsers; /** * Show the email verification notice. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function show(Request $request) { return $request->user()->hasVerifiedEmail() ? redirect($this->redirectPath()) : view('auth.verify'); } /** * Mark the authenticated user's email address as verified. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response * @throws \Illuminate\Auth\Access\AuthorizationException */ public function verify(Request $request) { if ($request->route('id') != $request->user()->getKey()) { throw new AuthorizationException; } if ($request->user()->hasVerifiedEmail()) { return redirect($this->redirectPath()); } if ($request->user()->markEmailAsVerified()) { event(new Verified($request->user())); } return redirect($this->redirectPath())->with('verified', true); } /** * Resend the email verification notification. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function resend(Request $request) { if ($request->user()->hasVerifiedEmail()) { return redirect($this->redirectPath()); } $request->user()->sendEmailVerificationNotification(); return back()->with('resent', true); } }