【问题标题】:Loopback - How to assign an access token to a role?Loopback - 如何将访问令牌分配给角色?
【发布时间】:2018-07-22 03:48:49
【问题描述】:

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

我有几个从基本用户模型扩展而来的模型。

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

是不是loopback在登录时会通过rolemaping自动将access_token映射到$authenticated role

如何将我登录时获得的 access_token 映射到“admin”角色?

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

谢谢。

【问题讨论】:

    标签: loopbackjs


    【解决方案1】:

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

    访问令牌只是当前登录用户的参考,它不包含有关用户角色的任何信息。您不会将访问令牌与角色相关联,Loopback 不会为您这样做。

    确实,您可以在模型中创建 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 指的是特定的资源对象。这是引用不同资源对象的常用方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      • 2015-06-25
      • 2020-10-02
      • 1970-01-01
      • 2017-04-09
      • 2016-04-06
      • 2019-11-13
      相关资源
      最近更新 更多