使用 JS SDK 在 Parse Server 中查询类的权限被拒绝
Posted
技术标签:
【中文标题】使用 JS SDK 在 Parse Server 中查询类的权限被拒绝【英文标题】:Permission denied to query class in the Parse Server with JS SDK 【发布时间】:2020-06-09 15:17:04 【问题描述】:我使用 Parse Dashboard 在我的 Parse Server 中创建了一个类,然后我将 Class Level Permissions 更改为只允许一个用户对该类的文档进行读写操作:
应该有权访问此类的用户也是通过 Parse Dashboard 手动创建的,如下所示:
但是,当我尝试从这个类中查询文档时,特别是使用这个用户,我不断收到错误消息“Permission denied for action find on class Person”。这就是我的代码登录和查询类的样子:
const Person = Parse.Object.extend('Person')
Parse.Object.registerSubclass('Person', Person)
Parse.User.logIn('username', 'password').then(user =>
console.log('E-mail: ' + user.getEmail())
console.log('Created: ' + user.createdAt)
console.log('Current: ' + user.isCurrent())
console.log('Authenticated: ' + user.authenticated())
const query = new Parse.Query(Person)
query.equalTo('name', 'John')
return query.find()
)
我添加了一堆console.log
来检查正在打印的用户信息,我确认登录似乎成功完成,因为字段email
和createdAt
与我在中看到的信息相匹配解析仪表板。但是,authenticated
和current
字段都返回false
,但我不知道为什么。我期待他们返回true
。
这是应用程序中我尝试登录 Parse Server 并执行仅限一个用户的操作的唯一位置。知道为什么我会收到此“Permission denied for action find on class Person”错误吗?
【问题讨论】:
【参考方案1】:我猜这与安全有关。通常 Parse 不允许用户获取有关任何其他用户的数据,除非您执行某些操作 - 例如- 从仪表板允许它。但无论如何我想你必须一件一件地去做。
【讨论】:
以上是关于使用 JS SDK 在 Parse Server 中查询类的权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Parse-JS-SDK,matchesKeyInQuery 不适用于 objectId。
解析云代码迁移后如何更新到最新版本的 Parse-SDK-JS
如何使用 PHP Parse SDK 连接到 mongodb Parse-Server?
Flutter/dart:Parse Server sdk:ParseUser.currentUser() 函数在重置时返回 null
如何使用 php parse-server sdk 将 ParseQuery::orQueries 与 matchQuery 结合起来