DisposableGuard

Laravel (PHP)

<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class BlockDisposableEmail
{
    public function handle(Request $request, Closure $next)
    {
        $email = $request->input('email');
        if (!$email) return $next($request);

        try {
            $response = \Http::withHeaders([
                'Authorization' => 'Bearer ' . env('DG_KEY'),
            ])->get('https://api.disposableguard.com/v1/check', [
                'email' => $email,
            ]);

            if ($response->successful() && $response->json('is_disposable')) {
                return response()->json([
                    'error' => 'Please use a real email address.',
                ], 400);
            }
        } catch (\Exception $e) {
            // fail-open
        }

        return $next($request);
    }
}

Notes

Register the middleware in `app/Http/Kernel.php` and apply it to your signup route.