Step 3: Webhook endpoint (middleware, form request, controller, route)

This commit is contained in:
idevakk
2026-03-05 14:03:07 +05:30
parent 2491be9809
commit 2a7c77d7be
4 changed files with 116 additions and 1 deletions

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class VerifyWebhookSecret
{
/**
* Verify the incoming webhook request has a valid Bearer token.
*/
public function handle(Request $request, Closure $next): Response
{
$secret = config('services.mailops.webhook_secret');
if (empty($secret)) {
return response()->json(['error' => 'Webhook secret not configured'], 500);
}
$token = $request->bearerToken();
if (! $token || ! hash_equals($secret, $token)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $next($request);
}
}