# 查询用户权限

了解如何配置用户角色、权限:

权限控制

# 获取用户权限列表

Authing.userPermissionList(_id, options)

  • 参数
    • _id <string> 用户 ID,必填。
  • 使用方法
const permissionLost = await authing.userPermissionList("USER ID");
  • 返回数据
    • totalCount 权限总数
    • list 权限列表
    • rawList 权限列表,只包含 name
{
  "totalCount": 1,
  "list": [
    {
      "_id": "5e20082f4b6419665991fa57",
      "name": "invoice:submit",
      "description": "提交发票报销申请。"
    }
  ],
  "rawList": ["invoice:submit"]
}

# 获取用户角色列表

Authing.userRoleList(_id, options)

  • 参数
    • _id <string> 用户 ID,必填。
  • 使用方法
const permissionLost = await authing.userRoleList("USER ID");
  • 返回数据
    • totalCount 权限总数
    • list 权限列表
    • rawList 权限列表,只包含 name
{
  "totalCount": 2,
  "list": [
    {
      "_id": "5e20082f4b6419665991fa57",
      "name": "Invoice Submitter",
      "description": "能使用发票工具创建并读取发票工具记录。"
    },
    {
      "_id": "5e20082f4b6419665991fa58",
      "name": "Vacation Requester",
      "description": "能使用假期申请工具申请假期。"
    }
  ],
  "rawList": ["Invoice Submitter", "Vacation Requester"]
}

# 获取用户分组列表

Authing.userGroupList(_id, options)

  • 参数
    • _id <string> 用户 ID,必填。
  • 使用方法
const permissionLost = await authing.userGroupList("USER ID");
  • 返回数据
{
  "totalCount": 2,
  "list": [
    {
      "_id": "5e1fff324b6419665991f6b4",
      "name": "employee",
      "description": "正式员工。"
    },
    {
      "_id": "5e1edcb34b6419665991f5d9",
      "name": "intern",
      "description": "实习生。"
    }
  ],
  "rawList": ["employee", "intern"]
}

# 如何与业务结合

假设你有一个接口,只有具备特定权限的用户可以访问:

app.get("/api/example", async (req, res) => {
  const userId = req.user._id;
  const res = await authing.userPermissionList(userId);
  const { rawList: permissions } = res;
  if (permissions.indexOf("invoice:submit") === -1) {
    res.json({
      code: 403,
      message: "没有权限访问",
    });
  }

  // ...
});