PHPackages                             cheney/admin-system - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. cheney/admin-system

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

cheney/admin-system
===================

Cheney Admin System - Laravel后台管理系统Composer包

3.1(4mo ago)012MITPHPPHP ^7.4|^8.0

Since Feb 4Pushed 4mo agoCompare

[ Source](https://github.com/cheney70/admin-system)[ Packagist](https://packagist.org/packages/cheney/admin-system)[ RSS](/packages/cheney-admin-system/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (7)Versions (14)Used By (0)

Cheney Admin System
===================

[](#cheney-admin-system)

基于 Laravel 的后台管理系统 Composer 扩展包，提供完整的用户管理、角色管理、权限管理、菜单管理和操作日志功能。

功能特性
----

[](#功能特性)

- ✅ 用户管理 - 管理员账号的增删改查、角色分配、密码重置、状态管理
- ✅ 角色管理 - 角色的增删改查、权限分配、用户分配
- ✅ 权限管理 - 权限的增删改查、权限分组
- ✅ 菜单管理 - 菜单的增删改查、树形结构展示、权限关联
- ✅ 操作日志 - 记录用户操作行为、日志查询、统计、导出
- ✅ JWT 认证 - 基于 JWT 的用户认证机制
- ✅ RBAC 权限控制 - 基于角色的访问控制
- ✅ Swagger API 文档 - 自动生成 API 文档
- ✅ 单元测试 - 完整的单元测试覆盖
- ✅ Service 层架构 - 业务逻辑封装在 Service 层
- ✅ CORS 支持 - 跨域请求支持

技术栈
---

[](#技术栈)

- Laravel 8+
- PHP 7.4+
- MySQL 5.7+
- Redis
- JWT Auth
- Swagger

安装
--

[](#安装)

### 1. 安装 Composer 包

[](#1-安装-composer-包)

```
composer require cheney/admin-system
```

### 2. 发布配置文件

[](#2-发布配置文件)

```
php artisan vendor:publish --provider="Cheney\AdminSystem\AdminSystemServiceProvider" --tag="admin-config"
```

### 3. 发布数据库迁移文件

[](#3-发布数据库迁移文件)

```
php artisan vendor:publish --provider="Cheney\AdminSystem\AdminSystemServiceProvider" --tag="admin-migrations"
```

### 4. 运行数据库迁移

[](#4-运行数据库迁移)

```
php artisan migrate
```

### 5. 运行数据填充

[](#5-运行数据填充)

```
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\AdminSeeder
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\RoleSeeder
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\PermissionSeeder
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\MenuSeeder
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\RoleAdminSeeder
php artisan db:seed --class=Cheney\\AdminSystem\\Database\\Seeders\\PermissionRoleSeeder
```

### 6. 生成 JWT Secret

[](#6-生成-jwt-secret)

```
php artisan jwt:secret
```

### 7. 配置环境变量

[](#7-配置环境变量)

在 `.env` 文件中添加以下配置：

```
JWT_SECRET=your-jwt-secret-key
JWT_TTL=1440
JWT_REFRESH_TTL=20160
```

配置
--

[](#配置)

### 配置文件说明

[](#配置文件说明)

发布配置文件后，可以在 `config/admin.php` 中进行配置：

```
return [
    // 路由前缀
    'route_prefix' => 'system',

    // 中间件
    'middleware' => [
        'auth' => 'jwt',
        'permission' => 'permission',
    ],

    // JWT 配置
    'jwt' => [
        'secret' => env('JWT_SECRET'),
        'ttl' => env('JWT_TTL', 1440),
        'refresh_ttl' => env('JWT_REFRESH_TTL', 20160),
    ],

    // 分页配置
    'pagination' => [
        'per_page' => 15,
    ],

    // 操作日志配置
    'operation_log' => [
        'enabled' => true,
        'except' => [
            'login',
            'logout',
        ],
    ],

    // 上传配置
    'upload' => [
        'disk' => 'public',
        'path' => 'uploads',
    ],

    // 默认管理员
    'default_admin' => [
        'username' => 'admin',
        'password' => 'admin123',
        'name' => '超级管理员',
    ],
];
```

使用方法
----

[](#使用方法)

### 1. 认证

[](#1-认证)

#### 登录

[](#登录)

```
POST /api/system/auth/login
Content-Type: application/json

{
    "username": "admin",
    "password": "admin123"
}
```

响应：

```
{
    "code": 10000,
    "message": "登录成功",
    "data": {
        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
        "token_type": "bearer",
        "expires_in": 86400,
        "user": {
            "id": 1,
            "username": "admin",
            "name": "超级管理员",
            "email": "admin@example.com",
            "avatar": null
        }
    }
}
```

#### 获取当前用户信息

[](#获取当前用户信息)

```
GET /api/system/auth/me
Authorization: Bearer {access_token}
```

#### 退出登录

[](#退出登录)

```
POST /api/system/auth/logout
Authorization: Bearer {access_token}
```

#### 刷新 Token

[](#刷新-token)

```
POST /api/system/auth/refresh
Authorization: Bearer {access_token}
```

### 2. 用户管理

[](#2-用户管理)

#### 获取用户列表

[](#获取用户列表)

```
GET /api/system/admins
Authorization: Bearer {access_token}
```

#### 创建用户

[](#创建用户)

```
POST /api/system/admins
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "username": "testuser",
    "password": "password123",
    "name": "测试用户",
    "email": "test@example.com",
    "phone": "13800138000",
    "status": 1
}
```

#### 更新用户

[](#更新用户)

```
PUT /api/system/admins/{id}
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "name": "更新后的名称",
    "email": "newemail@example.com"
}
```

#### 删除用户

[](#删除用户)

```
DELETE /api/system/admins/{id}
Authorization: Bearer {access_token}
```

#### 分配角色

[](#分配角色)

```
POST /api/system/admins/{id}/roles
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "role_ids": [1, 2, 3]
}
```

#### 重置密码

[](#重置密码)

```
POST /api/system/admins/{id}/reset-password
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "password": "newpassword123"
}
```

#### 修改状态

[](#修改状态)

```
POST /api/system/admins/{id}/change-status
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "status": 0
}
```

### 3. 角色管理

[](#3-角色管理)

#### 获取角色列表

[](#获取角色列表)

```
GET /api/system/roles
Authorization: Bearer {access_token}
```

#### 创建角色

[](#创建角色)

```
POST /api/system/roles
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "name": "编辑",
    "code": "editor",
    "description": "内容编辑角色"
}
```

#### 分配权限

[](#分配权限)

```
POST /api/system/roles/{id}/permissions
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "permission_ids": [1, 2, 3, 4]
}
```

#### 分配用户

[](#分配用户)

```
POST /api/system/roles/{id}/admins
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "admin_ids": [1, 2, 3]
}
```

### 4. 权限管理

[](#4-权限管理)

#### 获取权限列表

[](#获取权限列表)

```
GET /api/system/permissions
Authorization: Bearer {access_token}
```

#### 创建权限

[](#创建权限)

```
POST /api/system/permissions
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "name": "用户管理",
    "code": "user.manage",
    "type": "menu",
    "description": "用户管理权限"
}
```

### 5. 菜单管理

[](#5-菜单管理)

#### 获取菜单列表

[](#获取菜单列表)

```
GET /api/system/menus
Authorization: Bearer {access_token}
```

#### 获取菜单树

[](#获取菜单树)

```
GET /api/system/menus/tree
Authorization: Bearer {access_token}
```

#### 获取当前用户菜单

[](#获取当前用户菜单)

```
GET /api/system/user-menus
Authorization: Bearer {access_token}
```

#### 创建菜单

[](#创建菜单)

```
POST /api/system/menus
Authorization: Bearer {access_token}
Content-Type: application/json

{
    "parent_id": 0,
    "name": "用户管理",
    "path": "/user",
    "icon": "user",
    "sort": 1,
    "permission_id": 1
}
```

### 6. 操作日志

[](#6-操作日志)

#### 获取操作日志列表

[](#获取操作日志列表)

```
GET /api/system/operation-logs
Authorization: Bearer {access_token}
```

#### 获取日志统计

[](#获取日志统计)

```
GET /api/system/operation-logs/statistics
Authorization: Bearer {access_token}
```

#### 导出日志

[](#导出日志)

```
POST /api/system/operation-logs/export
Authorization: Bearer {access_token}
```

#### 清空日志

[](#清空日志)

```
POST /api/system/operation-logs/clear
Authorization: Bearer {access_token}
```

Facade 使用
---------

[](#facade-使用)

本扩展包提供了多个 Facade 方便调用：

```
use Cheney\AdminSystem\Facades\AdminAuth;
use Cheney\AdminSystem\Facades\AdminUser;
use Cheney\AdminSystem\Facades\AdminRole;
use Cheney\AdminSystem\Facades\AdminPermission;
use Cheney\AdminSystem\Facades\AdminMenu;
use Cheney\AdminSystem\Facades\AdminOperationLog;

// 认证
$token = AdminAuth::login($credentials);
$user = AdminAuth::me();

// 用户管理
$users = AdminUser::getList($params);
AdminUser::create($data);

// 角色管理
$roles = AdminRole::getList($params);
AdminRole::create($data);

// 权限管理
$permissions = AdminPermission::getList($params);
AdminPermission::create($data);

// 菜单管理
$menus = AdminMenu::getTree();
AdminMenu::create($data);

// 操作日志
$logs = AdminOperationLog::getList($params);
AdminOperationLog::create($data);
```

中间件
---

[](#中间件)

### JWT 认证中间件

[](#jwt-认证中间件)

在路由中使用 JWT 认证：

```
Route::middleware('jwt')->group(function () {
    // 需要认证的路由
});
```

### 权限检查中间件

[](#权限检查中间件)

在路由中使用权限检查：

```
Route::middleware('permission:user.manage')->group(function () {
    // 需要 user.manage 权限的路由
});
```

### 操作日志中间件

[](#操作日志中间件)

自动记录用户操作：

```
Route::middleware('operation.log')->group(function () {
    // 需要记录操作日志的路由
});
```

### CORS 中间件

[](#cors-中间件)

处理跨域请求：

```
Route::middleware('cors')->group(function () {
    // 需要处理跨域的路由
});
```

数据库表结构
------

[](#数据库表结构)

### admins 表

[](#admins-表)

管理员表，存储系统管理员信息。

### roles 表

[](#roles-表)

角色表，存储系统角色信息。

### permissions 表

[](#permissions-表)

权限表，存储系统权限信息。

### menus 表

[](#menus-表)

菜单表，存储系统菜单信息。

### role\_admin 表

[](#role_admin-表)

角色管理员关联表，多对多关系。

### permission\_role 表

[](#permission_role-表)

权限角色关联表，多对多关系。

### operation\_logs 表

[](#operation_logs-表)

操作日志表，记录用户操作行为。

单元测试
----

[](#单元测试)

运行单元测试：

```
php artisan test --filter="Cheney\\AdminSystem\\Tests"
```

测试文件位于 `src/tests/Feature/` 目录下：

- AuthTest.php - 认证功能测试
- AdminTest.php - 用户管理测试
- RoleTest.php - 角色管理测试
- PermissionTest.php - 权限管理测试
- MenuTest.php - 菜单管理测试
- OperationLogTest.php - 操作日志测试

Swagger API 文档
--------------

[](#swagger-api-文档)

生成 Swagger API 文档：

```
php artisan l5-swagger:generate
```

访问文档：

```
http://your-domain.com/api/documentation

```

默认账号
----

[](#默认账号)

系统初始化后会创建默认管理员账号：

- 用户名：admin
- 密码：admin123

**⚠️ 请在生产环境中立即修改默认密码！**

API 响应格式
--------

[](#api-响应格式)

所有 API 接口统一返回格式：

```
{
    "code": 10000,
    "message": "操作成功",
    "data": {}
}
```

- code: 10000 表示成功，20000 表示失败
- message: 操作结果消息
- data: 返回的数据

目录结构
----

[](#目录结构)

```
composer-package/
├── config/              # 配置文件
│   ├── admin.php       # 管理系统配置
│   ├── jwt.php         # JWT 配置
│   └── ...
├── database/
│   ├── factories/      # 数据工厂
│   ├── migrations/     # 数据库迁移
│   └── seeders/        # 数据填充
├── routes/
│   └── api.php         # API 路由
├── src/
│   ├── Controllers/    # 控制器
│   ├── Exceptions/     # 异常类
│   ├── Facades/        # 门面类
│   ├── Middleware/     # 中间件
│   ├── Models/         # 模型
│   ├── Services/       # 服务层
│   ├── Traits/         # 特性
│   ├── tests/          # 单元测试
│   └── AdminSystemServiceProvider.php
└── composer.json       # Composer 配置

```

常见问题
----

[](#常见问题)

### 1. JWT Token 过期

[](#1-jwt-token-过期)

Token 默认有效期为 24 小时，可以使用 refresh 接口刷新 Token。

### 2. 权限验证失败

[](#2-权限验证失败)

确保用户已分配相应角色，角色已分配相应权限。

### 3. CORS 错误

[](#3-cors-错误)

确保已在路由中应用 CORS 中间件。

### 4. 操作日志未记录

[](#4-操作日志未记录)

检查操作日志中间件是否已正确配置，排除不需要记录的路由。

版本历史
----

[](#版本历史)

### 1.0.0 (2024-01-01)

[](#100-2024-01-01)

- 初始版本发布
- 实现用户、角色、权限、菜单、操作日志管理
- JWT 认证
- Swagger API 文档
- 单元测试

许可证
---

[](#许可证)

MIT License

作者
--

[](#作者)

Cheney

支持
--

[](#支持)

如有问题或建议，请提交 Issue 或 Pull Request。

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance74

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

12

Last Release

140d ago

Major Versions

2.8.1 → 3.02026-02-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/250a855f3ba8c0affe3a904c19ec30fb6fac1cd0870b6e41cf8b2802f3660586?d=identicon)[cheney70](/maintainers/cheney70)

---

Top Contributors

[![cheney70](https://avatars.githubusercontent.com/u/9974334?v=4)](https://github.com/cheney70 "cheney70 (15 commits)")

---

Tags

jwtlaravelrbacadmin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cheney-admin-system/health.svg)

```
[![Health](https://phpackages.com/badges/cheney-admin-system/health.svg)](https://phpackages.com/packages/cheney-admin-system)
```

###  Alternatives

[dcat-plus/laravel-admin

dcat-plus admin

1474.0k10](/packages/dcat-plus-laravel-admin)[smarch/watchtower

Front-end for the Shinboi Auth system of Users / Roles / Permissions in Laravel 5

523.0k](/packages/smarch-watchtower)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
