RBAC 权限

6 种登录策略,细粒度权限注册表,B 端角色管理。

6 种登录策略

策略说明适用场景
independent独立登录,每个应用独立单应用
group_sso分组 SSO,同组应用共享产品线内
global_sso全局 SSO,所有应用共享集团级
single_device单设备登录安全要求高
multi_device多设备登录消费级应用
ip_boundIP 绑定内部系统

配置策略

在控制台应用详情页配置 login_policy

{
  "login_policy": "group_sso",
  "policy_config": {
    "group_key": "yunjii_products",
    "max_devices": 3,
    "ip_whitelist": []
  }
}

多实例 Token

UM 支持多实例 Token,每个设备/应用有独立 Token:

CREATE TABLE um_user_token (
  user_id BIGINT,
  token VARCHAR(255),
  scope VARCHAR(50),            -- 应用分组/全局
  scope_type ENUM('app', 'group', 'global'),
  device_id VARCHAR(64),
  login_ip VARCHAR(45),
  ip_bound BOOLEAN,
  expire_at DATETIME
);

权限注册表

B 端 RBAC 通过权限注册表管理:

CREATE TABLE um_perm_registry (
  perm_key VARCHAR(100) PRIMARY KEY,
  perm_name VARCHAR(100),
  module VARCHAR(50),
  description TEXT
);

CREATE TABLE um_b_roles (
  id BIGINT PRIMARY KEY,
  role_key VARCHAR(50),
  role_name VARCHAR(100),
  perms TEXT                    -- JSON 权限列表
);

Token 验证

GET /check_token.php
Authorization: Bearer your_token_here

响应:

{
  "code": 1,
  "data": {
    "user_id": 123,
    "openid": "um_abc123",
    "scope": "yunjii_products",
    "expire_at": "2026-07-12 10:00:00"
  }
}

Token 验证返回 scope 字段,标识该 Token 的作用域(单应用/分组/全局),便于做细粒度授权。

下一步