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.