middleware('throttle:6,1')->only('verify', 'resend'); } /** * Mark the user's email address as verified. * * @param \Illuminate\Http\Request $request * @param \App\User $user * @return \Illuminate\Http\JsonResponse */ public function verify(Request $request, User $user) { if (! URL::hasValidSignature($request)) { return response()->json([ 'status' => trans('verification.invalid'), ], 400); } if ($user->hasVerifiedEmail()) { return response()->json([ 'status' => trans('verification.already_verified'), ], 400); } $user->markEmailAsVerified(); event(new Verified($user)); return response()->json([ 'status' => trans('verification.verified'), ]); } /** * Resend the email verification notification. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function resend(Request $request) { $this->validate($request, ['email' => 'required|email']); $user = User::where('email', $request->email)->first(); if (is_null($user)) { throw ValidationException::withMessages([ 'email' => [trans('verification.user')], ]); } if ($user->hasVerifiedEmail()) { throw ValidationException::withMessages([ 'email' => [trans('verification.already_verified')], ]); } $user->sendEmailVerificationNotification(); return response()->json(['status' => trans('verification.sent')]); } }