middleware('throttle:6,1')->only('verify', 'resend'); } public function show() { return View::make('auth.verify-email'); } public function verify(Request $request, $token) { Log::info('Verification attempt started', [ 'token' => $token, 'request_url' => $request->fullUrl(), 'request_method' => $request->method(), 'request_headers' => $request->headers->all() ]); try { // Cari user berdasarkan token $user = User::where('verification_token', $token)->first(); if (!$user) { Log::error('Invalid verification token', [ 'token' => $token, 'request_url' => $request->fullUrl() ]); return Redirect::to('/')->with('error', 'Token verifikasi tidak valid.'); } Log::info('User found for verification', [ 'user_id' => $user->id, 'email' => $user->email, 'is_verified' => $user->is_verified ]); // Update status verifikasi $user->is_verified = 1; $user->verification_token = null; // Hapus token setelah digunakan $user->save(); Log::info('Email verified successfully', [ 'user_id' => $user->id, 'email' => $user->email, 'is_verified' => $user->is_verified ]); // Login user Auth::login($user); return Redirect::to('/')->with('status', 'Email berhasil diverifikasi!'); } catch (\Exception $e) { Log::error('Error during email verification', [ 'token' => $token, 'error' => $e->getMessage(), 'trace' => $e->getTraceAsString() ]); return Redirect::to('/')->with('error', 'Terjadi kesalahan saat verifikasi email.'); } } public function resend(Request $request) { if ($request->user()->is_verified) { return Redirect::to('/'); } // Generate token baru $token = Str::random(64); $request->user()->verification_token = $token; $request->user()->save(); // Kirim email dengan token baru $verificationUrl = url("/email/verify/{$token}"); // Kirim email (gunakan sistem email yang sudah ada) \Mail::send('emails.verify', ['url' => $verificationUrl], function($message) use ($request) { $message->to($request->user()->email); $message->subject('Verifikasi Email'); }); return Redirect::back()->with('status', 'Link verifikasi baru telah dikirim ke email Anda.'); } }