jeffersongoncalves/laravel-cookie-consent
Simple Laravel cookie consent banner with GDPR/CCPA-friendly preferences. Drop-in head/body includes, optional view publishing for customization, and settings stored in the database via spatie/laravel-settings with helper access for runtime updates.
Pros:
spatie/laravel-settings for runtime-adjustable settings (e.g., GDPR/CCPA compliance text, UI themes). Aligns with modern Laravel practices (e.g., Filament/Nova admin panels).@include('cookie-consent::...')), avoiding global JS pollution.content_allow/content_deny settings).Cons:
spatie/laravel-settings (not a core Laravel dependency). May require additional setup if not already in use.Low Effort for Basic Use:
composer require jeffersongoncalves/laravel-cookie-consentphp artisan migrate (creates settings table).resources/views/layouts/app.blade.php:
@include('cookie-consent::cookie-consent-head')
@include('cookie-consent::cookie-consent-body')
Advanced Use Cases:
// app/Http/Middleware/CheckCookieConsent.php
public function handle(Request $request, Closure $next) {
if (!$request->cookie('cookie_consent') && !$request->ipIsTrusted()) {
abort(403, 'Cookie consent required.');
}
return $next($request);
}
resources/views/vendor/cookie-consent/) to support translations (though v3.x removed built-in i18n).cookieconsent JS API to define granular categories (e.g., analytics, marketing) via data-cookieconsent attributes.| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Dependency Updates | Medium | Monitor spatie/laravel-settings and Osano for breaking changes. Use composer why-not to test updates. |
| CDN Failures | Low | Publish assets locally via php artisan vendor:publish --tag=cookie-consent-assets (if CDN downtime is a concern). |
| Consent Logic Errors | High | Test edge cases (e.g., user clears cookies, returns later). Use middleware to validate consent before sensitive actions. |
| Compliance Gaps | Medium | Audit against GDPR/CCPA requirements (e.g., explicit consent for analytics cookies). Consider adding a "Do Not Sell" link for CCPA. |
| Performance | Low | CDN-hosted assets are lazy-loaded by default. No significant impact on TTFB. |
Regulatory Requirements:
User Experience:
Technical Constraints:
spatie/laravel-settings already in use in the codebase? If not, is there appetite to add it?Maintenance:
Laravel Ecosystem:
Non-Laravel Components:
Anti-Patterns:
vendor/jeffersongoncalves/...). Use published assets or custom views.| Phase | Steps | Rollback Plan |
|---|---|---|
| Discovery | Audit existing cookie usage (e.g., via browser dev tools). Identify categories (analytics, ads, etc.) that need consent. | None. |
| Installation | composer require jeffersongoncalves/laravel-cookie-consent |
composer remove jeffersongoncalves/laravel-cookie-consent |
| Configuration | Run migrations (php artisan migrate). Customize settings via code or admin panel. Add Blade includes to layout file. |
Revert migrations (php artisan migrate:rollback). Remove Blade includes. |
| Testing | Verify banner appears, consent is stored in cookies, and scripts are blocked until consent. Test edge cases (e.g., cookie deletion). | Rollback to pre-integration state. |
| Deployment | Deploy to staging, validate compliance, then production. | Use feature flags or middleware to toggle consent enforcement. |
| Monitoring | Log consent-related events (e.g., "user denied cookies") for compliance audits. | Disable logging if privacy concerns arise. |
fileinfo, mbstring) suffices.cookieconsent JS/CSS.laravel-cookie-manager). Audit for duplicates.Pre-requisites:
spatie/laravel-settings is compatible with your Laravel version (check Spatie’s docs).Core Integration:
CookieConsentSettings class.Enhancements (Optional):
Post-Launch:
How can I help you explore Laravel packages today?