回送-如何为角色分配访问令牌?

时间:2018-07-22 03:48:49

标签: loopbackjs

回送的新手,我对回送的访问令牌系统感到困惑...

我从基本用户模型扩展了几个模型。

当我使用默认路由登录到每个用户(管理员,用户,所有者)时,我得到一个access_token。

登录时,回送是否通过 rolemapping 自动将 access_token 映射到$ authenticated role

我该怎么做,以便将登录时获得的access_token映射为“管理员”角色?

此外,在RoleMapping模型的上下文中“ principalId”到底是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

模型AccessToken和模型RoleMapping都存储对模型User(或其扩展模型)的引用。

访问令牌只是当前登录用户的参考,它不包含有关用户角色的任何信息。您没有将访问令牌与角色相关联,而环回也无法为您做到这一点。

实际上,您可以在模型内部创建ACL策略,以根据用户角色指定用户何时可以访问资源。这是管理员角色用法的典型示例:

// table Role
id: 1
name: admin
description: Administrators have full read/write access to the content

// table User
id: 1
...

// Add this record to the table RoleMapping if you want to give the role admin to the above user
id: [auto-incremental]
principalType: "USER"
principalId: 1
roleId: 1

// ACL example: only admins can access the model
"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "admin",
      "permission": "ALLOW"
    }
  ]

principalType引用资源,principalId引用特定的资源对象。这是引用不同资源对象的常用方法。