首页 > 解决方案 > Role.getRoles(context, callback) 中引用的“安全上下文”是什么

问题描述

在环回中,他们在此链接Role.getRoles(context, callback)中将文档中的上下文称为“安全上下文” 。

例如,什么是安全上下文以及如何传递它来获取用户角色?

标签: loopback

解决方案


正如文档中所述,LoopBack 的访问控制系统是围绕几个核心概念构建的。其中“委托人” - 可以识别或验证的实体。有三个基本的“principalType”——APP(LICATION)、USER、ROLE。每个特定的主体对象都有一个“principalId”——主体的 ID——例如 appId、userId 或 roleId。

getRoles 函数将 instanceof AccessContext 或强制转换为参数上下文( http://apidocs.loopback.io/loopback/#accesscontext ) 并列出给定主体的角色。

AccessContext 函数(用于强制转换)还接受使用以下属性定义的单个主体:

{ principalType: 'USER', principalId: '2' }

以同样的方式,我们可以在请求角色时定义上下文:

Role.getRoles({ principalType: 'USER', principalId: '2' }, (err, roles) => {
            if (err) console.log(err);
            console.log(roles);
          });

并为 ID 为“2”的用户获取一组角色ID(包括动态)。


推荐阅读