senses/laravel-gdpr

Laravel包,用于底层管理GDPR权限cookie。

1.0.0-rc1 2022-06-28 13:39 UTC

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)接受两个参数,categoryvaluevalue应该是布尔值。

该包是无前端特定的,允许你使用自己的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组件示例