【问题标题】:How do I associate an existing User with a newly created Role using the parse.com data browser?如何使用 parse.com 数据浏览器将现有用户与新创建的角色相关联?
【发布时间】:2014-11-20 23:13:57
【问题描述】:

我在 parse.com 数据浏览器中创建了一个角色。我还创建了一些用户对象。我无法将已创建的用户与该角色相关联。

我只能通过单击角色对象的“查看关系”按钮然后创建新用户来将用户与角色相关联。但是,我不想要一个新用户。我想将现有用户与该角色相关联。

如何使用 parse.com 数据浏览器将现有用户与新创建的角色相关联?

【问题讨论】:

  • 目前无法在数据浏览器中将对象添加到关系中(包括将用户添加到角色) - 按照下面的建议使用 cURL 或在您的应用中使用代码

标签: parse-platform


【解决方案1】:

据我了解,这是无法通过网站实现的。最快的方法是使用 cUrl 示例并对其进行修改以供自己使用。当您登录 Parse.com 并转到 documentation for the REST API call to update a role 时,您可以使用自己的 API 密钥复制示例。剩下要做的就是更改用户 ID 和角色 ID。它会给你留下这样的东西:

curl -X PUT \
  -H "X-Parse-Application-Id: <APP-ID>" \
  -H "X-Parse-Master-Key: <MASTER-KEY>" \
  -H "Content-Type: application/json" \
  -d '{
        "users": {
          "__op": "AddRelation",
          "objects": [
            {
              "__type": "Pointer",
              "className": "_User",
              "objectId": "<USER-ID>"
            }
          ]
        }
      }' \
  https://api.parse.com/1/roles/<ROLE-ID>

【讨论】:

    【解决方案2】:

    目前无法在数据浏览器 UI 中将对象添加到关系中(包括将用户添加到角色)

    https://www.parse.com/questions/how-can-i-add-objects-to-a-relation

    根据您的设置(例如,如果您使用 CLP 和/或 ACL 设置了权限),您还可以将 REST API 密钥与 cURL 一起使用或使用您的应用程序(在应用程序本身或云代码中) - 另请参阅https://parse.com/docs/rest/guide#roles-updating-roles

    用适当的名称、ID 和键替换下面的相关标签(例如 adminUSER_ID

    // Find admin role
    var Role = Parse.Object.extend("_Role"); 
    var query = new Parse.Query(Role); 
    query.equalTo("name", "admin"); 
    
    query.find({ success: function(results) { 
        var roleObject = results[0];
    
        // Add users here
    
        // Specify users to add
        var usersToAddToRole = ["USER_ID"];
        for (var i = 0; i < usersToAddToRole.length; i++) {
            roleObject.getUsers().add(usersToAddToRole[i]);
        }
    
        // Or add current user only 
        var user = Parse.User.current();
        var relation = roleObject.relation("users");
        relation.add(user);
    
        roleObject.save();
    } });
    

    上面 Parse 问题的链接还建议您可以使用 REST API 密钥而不是主密钥来发出 cURL 请求(不要在客户端应用程序中使用主密钥 - 仅在服务器上或手动 cURL 请求中使用!)

    curl -X PUT \
    -H "X-Parse-Application-Id: APP_ID" \
    -H "X-Parse-REST-API-Key: REST_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"users":{"__op":"AddRelation","objects":[{"__type":"Pointer","className":"_User","objectId":"USER_ID"}]}}' \
    https://api.parse.com/1/roles/ROLE_ID
    

    有关使用 REST API 管理角色的主要文档在此处https://parse.com/docs/rest/guide#roles
    有关安全性的更多详细信息,请查看http://blog.parse.com/learn/engineering/parse-security-i-are-you-the-key-master/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 2013-09-29
      • 2013-12-16
      • 2016-08-26
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      相关资源
      最近更新 更多