senses / laravel-gdpr
Laravel包,用于底层管理GDPR权限cookie。
1.0.0-rc1
2022-06-28 13:39 UTC
Requires
- php: ^7.0|^8.0
- illuminate/cookie: ^7.0|^8.0|^9.0
- illuminate/support: ^7.0|^8.0|^9.0
- illuminate/view: ^7.0|^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-28 18:21:28 UTC
README
一个用于通过类型处理cookie管理的Laravel包。深受Spatie的laravel-cookie-consent包的启发
安装
composer require senses/laravel-gdpr
在config/app.php
// Add to service providers array Senses\Gdpr\GdprServiceProvider::class, // Add to aliases array 'Gdpr' => Senses\Gdpr\GdprFacade::class,
用法
后端
在你的布局文件中,在<body>
标签内部某处包含@gdprjs
指令。
然后你可以使用@gdpr('category')
指令,它根据用户是否接受cookie作为if语句。
你可以使用php artisan vendor:publish
将包的配置发布到config/gdpr.php
。
php artisan vendor:publish --provider="Senses\Gdpr\GdprServiceProvider"
cookie的默认类别有
'types' => [ 'necessary', 'functional', 'analytics', 'settings' ]
你可以在发布的配置中更改这些,包括cookie名称和有效期。
你可以在.env文件中将GDPR_ENABLED
设置为false
来禁用插件。
前端
如果存在@gdprjs
指令,你可以通过javascript操作gdpr设置。
该包将laravelGdpr
对象绑定到window
对象。允许你从那里使用该包。
最好在更改这些设置后重新加载页面,以便用户的配置生效。
laravelGdpr
对象内部有两个方法
laravelGdpr.get()
将返回用户的整个配置。
laravelGdpr.set(category, value)
接受两个参数,category
和value
。value
应该是布尔值。
该包是无前端特定的,允许你使用自己的CSS和JS构建GDPR权限模态框。
当你的切换或复选框之一改变时,你需要调用laravelGdpr.set()
方法。
快速示例
document.querySelector('input[type="checkbox"]#third_party').addEventListener('click', function(e) { laravelGdpr.set('third_party', e.target.checked); });
在codesandbox上有一个完整的Vue组件示例