LoopBack 中的访问控制
Posted
技术标签:
【中文标题】LoopBack 中的访问控制【英文标题】:Access control in LoopBack 【发布时间】:2015-05-22 12:30:29 【问题描述】:我正在基于 StrongLoop API 平台为我的客户构建一个事件管理 Web 应用程序,我需要将 CRUD 对数据的访问限制为当前登录的用户(客户端)。
我已经按照https://github.com/strongloop/loopback-faq-user-management,https://github.com/strongloop/loopback-example-access-control这些教程成功登录和注销,现在需要在AngularJS客户端上实现恢复正确的数据。
我在“事件”模型上设置了如下关系:
"relations":
"user":
"type": "belongsTo",
"model": "User",
"foreignKey": "ownerId"
还有内置的用户模型:
"relations":
"events":
"type": "hasMany",
"model": "event",
"foreignKey": "ownerId"
不确定登录后在何处/如何定义访问令牌以进行 API 调用。我是否还需要对 $scope.events = Event.find();
应用过滤器以仅检索 ownerID: <currentUserId>
所在的记录,或者 ACL 是否应该为我实现这一点?
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:1) 访问令牌自动保存到 localStorage/sessionStorage 和 angular-sdk 内部。因此,它会在对 API 的每个请求中附加到 authorization
标头。
2) 是的,您应该应用过滤器,因为 ACL 只允许或拒绝访问远程方法。顺便说一句,查询用户事件的另一种方法是
User.events(id: currentUserId)
【讨论】:
以上是关于LoopBack 中的访问控制的主要内容,如果未能解决你的问题,请参考以下文章