PHPackages                             lake/laravel-admin-lapi - 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. [API Development](/categories/api)
4. /
5. lake/laravel-admin-lapi

ActiveLibrary[API Development](/categories/api)

lake/laravel-admin-lapi
=======================

The laravel-admin-lapi is an addon package for laravel-admin.

1.0.11(5y ago)9563Apache-2.0PHPPHP &gt;=7.1.0

Since Sep 29Pushed 4y agoCompare

[ Source](https://github.com/deatil/laravel-admin-lapi)[ Packagist](https://packagist.org/packages/lake/laravel-admin-lapi)[ Docs](https://github.com/deatil)[ RSS](/packages/lake-laravel-admin-lapi/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (1)Versions (6)Used By (0)

Api授权管理
-------

[](#api授权管理)

### 项目介绍

[](#项目介绍)

- 基于 `laravel-admin` 后台管理框架的api管理系统模块扩展
- 签名算法包括md5和Sha256摘要算法。
- 扩展实现了api的签名验证，请求日志记录，每个appid单独授权api接口等等。

### 签名算法

[](#签名算法)

- 第一步，设所有发送或者接收到的数据为集合M，将集合M内非空参数值的参数按照参数名ASCII码从小到大排序（字典序），使用URL键值对的格式（即key1=value1&amp;key2=value2…）拼接成字符串stringA。
- 第二步，在stringA最后拼接上key（即key=keyValue）得到stringSignTemp字符串，并对stringSignTemp进行MD5运算，再将得到的字符串所有字符转换为大写，得到sign值signValue。
- 特别注意以下重要规则：

```
◆ 参数名ASCII码从小到大排序（字典序）；
◆ 如果参数的值为空不参与签名；
◆ 参数名区分大小写；
◆ 验证调用返回或服务器主动通知签名时，传送的sign参数不参与签名，将生成的签名与该sign值作校验；
◆ 接口可能增加字段，验证签名时必须支持增加的扩展字段

```

- 签名数据注意：默认签名数据包括 `post` 及 `get` 数据集合，即签名数据为 `request()->all()`。

### 使用方法

[](#使用方法)

- 安装

```
composer require lake/laravel-admin-lapi

php artisan admin:import lapi

```

- 导入路由信息，解析api控制器注释

```
php artisan lapi:import-route

```

### 请求示例

[](#请求示例)

- GET 请求

```
GET: https://yourdomain.com/api/aaa?app_id=API2020091315292812159&name=aaa&nonce_str=SNejQr2b9RdF1CH1&sign=B28ED49A3EF7CEB615AE735608039562&timestamp=1600095342

```

- POST 请求

```
POST: https://yourdomain.com/api/aaa
body: {
    "app_id": "API2020091315292812159",
    "timestamp": 1600095789,
    "nonce_str": "035tdGRU3i4yeb38",
    "name": "aaa",
    "sign": "36316F06DE635AD51C182C8D5E7495F0"
}

```

### `JSON` 输出格式自定义

[](#json-输出格式自定义)

- 如果输出的json格式和需要的格式不一致，可以覆盖绑定默认json响应
- 可以在 `\App\Providers\AppServiceProvider` 内或者其他服务提供者处添加以下代码

```
$this->app->bind(\Lake\Admin\Lapi\Contracts\Response::class, YourResponse::class);

```

- 使用json响应

```
app('lapi.json')->json(boolen $success, int $code, string|null $msg, array|null $data);

```

### 模块内 `api` 文件方法注释

[](#模块内-api-文件方法注释)

- 方法注释

```
