PHPackages                             maxlcoder/laravel-desensitization - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. maxlcoder/laravel-desensitization

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

maxlcoder/laravel-desensitization
=================================

敏感信息处理

318PHP

Since Apr 7Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/maxlcoder/laravel-desensitization)[ Packagist](https://packagist.org/packages/maxlcoder/laravel-desensitization)[ RSS](/packages/maxlcoder-laravel-desensitization/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Desensitization Middleware
==================================

[](#laravel-desensitization-middleware)

[![Latest Version on Packagist](https://camo.githubusercontent.com/889b6bcfaa9112af83905dabfb47275d17733d4865e56c61726c179bdcfb13de/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d61786c636f6465722f6c61726176656c2d646573656e736974697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/maxlcoder/laravel-desensitization)[![Total Downloads](https://camo.githubusercontent.com/98ab62f1261147e4d987aa744325ed9aea850cc87307b1fcd10203fff6271af3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d61786c636f6465722f6c61726176656c2d646573656e736974697a6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/maxlcoder/laravel-desensitization)[![GitHub Actions](https://github.com/maxlcoder/laravel-desensitization/actions/workflows/main.yml/badge.svg)](https://github.com/maxlcoder/laravel-desensitization/actions/workflows/main.yml/badge.svg)

[English](#english) | [简体中文](#%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

---

English
-------

[](#english)

A middleware for desensitizing API response data. It is configuration-driven and supports highly customizable processing functions (methods).

### Installation

[](#installation)

```
composer require maxlcoder/laravel-desensitization
```

### Configuration

[](#configuration)

Publish configuration:

```
php artisan vendor:publish --provider="Maxlcoder\LaravelDesensitization\LaravelDesensitizationServiceProvider"
```

#### Config Fields

[](#config-fields)

- `functions`: Global helper function mapping. Example: `'mobile' => 'desensitiseMobile'` means fields with `type=mobile` in `uris` will use this helper.
- `class`: Global custom handler class config. `name` is the full class path (string), and `functions` maps field type to class method.
- Priority: `functions` has higher priority. If not found, it falls back to `class`. If both are missing, no processing is applied and an error log is recorded.
- `uris`: Defines APIs and field paths to process with corresponding types. The middleware parses response structure and iterates fields. Use `*` for array items.

```
[
    'functions' => [
        'mobile' => 'desensitise_mobile',
        'name' => 'desensitise_name'
    ],
    'class' => [
        'name' => 'App\Lib\Desensitization',
        'functions' => [
            'mobile' => 'desensitiseMobile',
        ],
    ],
    'uris' => [
        'admin/admins' => [
            ['key' => 'data.data.*.mobile', 'type' => 'mobile'],
            ['key' => 'data.data.*.name', 'type' => 'name'],
        ],
    ],
];
```

### Usage

[](#usage)

Register middleware in `Kernel.php`:

```
protected $routeMiddleware = [
    // ...
    'desensitization' => \Maxlcoder\LaravelDesensitization\Http\Middleware\Desensitization::class,
];
```

### Example

[](#example)

#### 1) Original Response

[](#1-original-response)

```
{
    "code": 200,
    "msg": "success",
    "data": {
        "mobile": "18900000001",
        "contacts": [
            {
                "name": "王组闲",
                "mobile": "18900000002"
            }
        ]
    }
}
```

#### 2) Config

[](#2-config)

Edit `config/laravel-desensitization.php`:

```
