仪表盘

{{ stats.users }}
用户总数
{{ stats.roles }}
角色数
{{ stats.permissions }}
权限数
{{ stats.groups }}
权限组

用户管理

共 {{ userTotal }} 人
用户名 姓名 角色 操作
{{ u.username }} {{ u.real_name || '-' }}
{{ roleName }} 未分配
暂无用户
第 {{ userPage }}/{{ Math.ceil(userTotal/userPageSize) }} 页

角色管理

{{ r.name }}

{{ r.description || '-' }}

{{ r.user_count || 0 }} 用户|{{ r.permission_ids?.length || 0 }} 权限
暂无角色

权限组管理

{{ g.name }}

{{ g.description || '-' }}

{{ g.permission_count }} 个权限
暂无权限组

权限管理

{{ g.group }} ({{ countGroupPerms(g) }} 项)

{{ parentNode.name }} {{ parentNode.code }} {{ parentNode.description }}
{{ child.name }} {{ child.code }} {{ child.description }}

外部权限供外部系统通过 API 密钥查询,不对应系统实际功能接口

编码 名称 分组 操作
{{ p.code }} {{ p.name }} {{ p.group || '-' }}
暂无外部权限
编码 名称 分组 操作
{{ p.code }} {{ p.name }} {{ p.group || '-' }}
暂无内部权限

API 密钥

API 密钥用于其他系统在不登录的情况下查询您的权限信息。请在请求头中携带 X-API-Key 访问 /api/public/permissions/api/public/check?permission=xxx

密钥测试

{{ testResult.success ? '测试成功' : '测试失败' }}
{{ JSON.stringify(testResult.data, null, 2) }}
{{ testResult.error }}

新密钥已生成,请立即复制保存:

{{ newApiKey }}
名称 密钥(部分) 操作
{{ k.name || '默认' }} {{ k.key.substring(0, 8) }}...
暂无密钥

调用日志

密钥归属 接口 IP 状态 时间
{{ log.owner_name || log.owner_username || '-' }}
{{ log.key_name || '默认' }}
{{ log.endpoint.replace('/api/public/', '') }} {{ log.ip_address }} 成功 失败 {{ formatDate(log.called_at) }}
暂无日志
共 {{ logTotal }} 条
{{ logPage }} / {{ Math.max(1, Math.ceil(logTotal/20)) }}

调用统计

按密钥维度展示调用次数和风险概览,帮助识别异常调用

密钥归属 密钥名称 总调用 成功 失败 IP数 风险 操作
{{ s.owner_name || s.owner_username || '-' }}
{{ s.owner_username }}
{{ s.key_name || '默认' }} {{ s.total_calls }} {{ s.success_calls }} {{ s.failed_calls }} {{ s.unique_ips }} 高风险 中风险 低风险
暂无统计数据

IP 调用详情 - {{ selectedKeyStats.key_name || '默认' }} ({{ selectedKeyStats.owner_name || selectedKeyStats.owner_username }})

IP 地址 调用次数 成功 失败 最近调用
{{ ip.ip_address }} {{ ip.call_count }} {{ ip.success_count }} {{ ip.failed_count }} {{ formatDate(ip.last_called_at) }}
暂无数据

OAuth 应用

注册第三方应用,让它们通过 OAuth2 接入本系统的统一登录和权限管理。接入文档见:GET /api/oauth/docs/integration

应用名称 Client ID 操作
{{ c.app_name }}
{{ c.app_description }}
{{ c.client_id }}
暂无注册应用

OAuth2 测试工具

测试 OAuth2 授权码流程。填入应用信息后,按步骤完成授权、换取 Token、获取用户信息。

测试配置

步骤 1: 生成授权 URL

步骤 2: 处理回调

授权码: {{ oauthTestAuthCode }}
State: {{ oauthTestCallbackState }}
State 验证: {{ oauthTestStateValid ? '✓ 匹配' : '✗ 不匹配' }}

步骤 3: 获取 Token

Access Token
{{ oauthTestAccessToken }}
Refresh Token
{{ oauthTestRefreshToken }}
Token 类型: {{ oauthTestTokenType }}
过期时间: {{ oauthTestExpiresIn }} 秒

步骤 4: 获取用户信息

{{ oauthTestUserInfo }}

测试日志

[{{ log.time }}] {{ log.message }}
等待操作...

钉钉同步

钉钉应用配置

{{ dingtalkTestResult.message }}

用户同步

从钉钉拉取组织架构中的所有用户,同步到本系统。已存在的用户会更新信息,新用户会自动创建(默认密码 123456)。

上次同步: {{ formatDate(dingtalkConfig.last_sync_at) }}
{{ dingtalkSyncResult.message }} (共 {{ dingtalkSyncResult.total }} 人)