---
url: https://www.aiforge.cn/features/auth-and-permission.md
---
# 认证与授权

## 1. 认证系统

| 功能 | 说明 |
|------|------|
| Sanctum Token认证 | 双 Guard Token 认证（admin/web），默认有效期 6 个月 |
| 多账号登录 | 支持用户名/邮箱/手机号三种登录方式 |
| 第三方登录 | 微信公众号授权登录、Apple 登录（管理员端预留） |
| 验证码服务 | 短信验证码（EasySMS）和邮件验证码 |
| Token 管理 | 刷新 Token、查看/撤销已签发的个人访问令牌 |
| 登录防护 | 登录频率限制、IP 限制 |

## 2. 权限管理

| 功能 | 说明 |
|------|------|
| 角色管理 | 创建、编辑、删除角色 |
| 权限管理 | 管理系统权限列表 |
| 角色权限分配 | 为角色分配权限 |
| 管理员角色分配 | 为管理员分配角色 |
| 权限检查 | 路由级（permission:xxx 中间件）和方法级权限控制 |
| 菜单权限 | 基于权限的菜单显示控制，前端自动过滤无权限路由 |

### 权限模型

* 使用 `spatie/laravel-permission v8` 实现 RBAC
* 支持角色与权限多对多关系
* 支持模型级多态关联（管理员、用户等多主体共用权限体系）
* 权限检查支持中间件和 Gate 两种方式

### AI 助手权限

AI 助手（`/admin/chat`）复用同一套权限体系，分三层控制：

1. **入口**：`ChatController` 挂载 `permission:chat.use` 中间件
2. **工具过滤**：`Assistant::tools()` 按当前管理员的权限点动态过滤可用工具（工具实现 `RequiresPermission` 契约声明权限点）
3. **执行兜底**：工具 `handle()` 内 `authorizeAdmin()` 二次校验，防止模型被诱导发起越权调用

权限点与后台菜单共用（如 `users.index`/`users.edit`/`settings.edit`），AI 助手入口使用独立的 `chat.use` 权限点。

***

> 文档来源：PRD 第 3.2 节
