header('X-WMS-Timestamp'); $signature = (string) $request->header('X-WMS-Signature'); abort_if($secret === '' || $timestamp === '' || $signature === '', 401); abort_if(abs(now()->timestamp - strtotime($timestamp)) > 300, 401, 'Expired internal API signature.'); $expected = hash_hmac('sha256', $timestamp . '.' . $request->getContent(), $secret); abort_unless(hash_equals($expected, $signature), 401, 'Invalid internal API signature.'); return $next($request); } }