Laravel: экспорт персональных данных
На прошлой неделе Фрик Ван дер Хертен выпустил пакет Spatie под названием «Экспорт личных данных Laravel», который поможет вам создавать ZIP-файлы, содержащие личные данные, в ваших приложениях Laravel:
Этот пакет позволяет пользователю легко загружать экспорт, содержащий все личные данные. Такой экспорт состоит из zip-файла, содержащего все пользовательские свойства и связанную информацию.
В связи с растущей обеспокоенностью по поводу конфиденциальности в социальных сетях и других веб-приложениях, вы можете подумать об экспорте пользовательских данных. Как видно из readme пакета, вы настраиваете экспорт файлов и данных, определяя метод selectPersonalData для модели пользователя:
public function selectPersonalData(PersonalDataSelection $personalDataSelection) {
$personalDataSelection
->add('user.json', ['name' => $this->name, 'email' => $this->email])
->addFile(storage_path("avatars/{$this->id}.jpg");
->addFile('other-user-data.xml', 's3');
}Пакет Laravel Personal Data Export обеспечивает настройку того, сколько дней личные данные будут доступны пользователю, а также некоторые другие настраиваемые параметры:
return [
/*
* Диск, на котором будет храниться экспорт, по умолчанию.
*/
'disk' => 'personal-data-exports',
/*
* Количество дней, в течение которых экспорт будет доступен.
*/
'delete_after_days' => 5,
/*
* Определяет, должен ли пользователь войти в систему, чтобы иметь доступ
* к экспорту.
*/
'authentication_required' => true,
/*
* Почтовое сообщение, которое будет отправлено пользователю после
* создания экспорта.
*/
'mailable' => \Spatie\PersonalDataExport\Mail\PersonalDataExportCreatedMail::class,
];Этот пакет заботится о шаблоне всех задач, связанных с инициацией экспорта данных, а затем выполняет их примерно в следующей последовательности:
Сначала пакет генерирует данные при отправке CreatePersonalDataExportJob в приложении (задание в очереди по умолчанию).
Затем, когда задание выполняется, экспортированные данные архивируются и копируются на настроенный диск. Наконец, пользователь получает уведомление по электронной почте с URL-адресом для загрузки.
Почти каждая часть (если не все) процесса экспорта настраивается. Вы можете проверить этот пакет на GitHub по адресу spatie/laravel-personal-data-export.