kielabokkie/laravel-conceal

在数组或集合中隐藏数据

v1.4.0 2022-01-05 20:59 UTC

This package is auto-updated.

Last update: 2024-09-06 02:36:17 UTC


README

Author Build Packagist Version Software License

此包允许你在数组或集合中隐藏敏感数据。这在将可能敏感的数据写入日志文件时特别有用。

安装后,你可以进行以下操作

$data = [
    'username' => 'wouter',
    'api_key' => 'secret'
];

$hide = ['api_key'];

$output = conceal($data, $hide);
print_r($output);

// Outputs: ['username' => 'wouter', 'api_key' => '********']

要求

  • PHP >= 7.2
  • Laravel 5.7+ | 6 | 7 | 8

安装

通过 composer 安装此包

composer require kielabokkie/laravel-conceal

包配置

此包配置最少。目前你可以设置的只是默认隐藏的键。如果你想添加自己的默认设置,可以通过运行以下命令发布配置文件

php artisan vendor:publish --provider="Kielabokkie\LaravelConceal\ConcealServiceProvider"

以下是将发布到 config/conceal.php 的文件内容

return [
    /*
     * Array of keys that will be concealed automatically.
     */
    'defaults' => [
        'password',
        'password_confirmation',
    ]
];

用法

使用默认配置隐藏密码

$data = [
    'username' => 'wouter',
    'password' => 'secret'
];

$output = conceal($data);
print_r($output);

// Outputs: ['username' => 'wouter', 'password' => '********']

动态设置键

$data = [
    'api_key' => 'secret'
];

$output = conceal($data, ['api_key']);
print_r($output);

// Outputs: ['api_key' => '********']

对于集合来说,所有操作都是一样的

$data = new Collection([
    'username' => 'wouter',
    'password' => 'secret'
]);

$output = conceal($data);
print_r($output->toArray());

// Outputs: ['username' => 'wouter', 'password' => '********']

最后但同样重要的是,它也支持递归操作

$data = [
    'password' => 'secret',
    'nextlevel' => [
        'password' => 'secret',
    ]
];

$output = conceal($data);
print_r($output);

// Outputs: ['password' => '********', 'nextlevel' => ['password' => '********']]

外观

上面的例子使用了 conceal() 辅助函数。如果你更喜欢外观,可以使用它。

use Kielabokkie\LaravelConceal\Facades\Concealer;

$data = [
    'password' => 'secret'
];

$output = Concealer::conceal($data);
print_r($output);

// Outputs: ['password' => '********']