查询用户权限

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

权限控制

获取用户权限列表

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: "没有权限访问"
        })
    }
    
    // ...
})

Last updated