我需要指定firstName、lastName和email以外的其他字段,这似乎是在我的应用程序中调用Backand.user.getUserDetails()时返回给我的全部内容,尽管在模型中指定了更多的字段。因此,它似乎是把这些从“注册用户”中抽出,而不是“用户”模式?
我还希望能够允许用户更新这些字段。当然,我不希望用户能够更新其他用户的字段,这就是在任何一个具有角色" user“的模型项上运行更新似乎都能够做到的事情。
为了实现这一点,我需要添加很多服务器端功能吗?还是我的方法是错误的--真的会假设Backand是否会将其包括在内呢?
发布于 2017-04-05 22:59:30
这里似乎有几个问题,所以让我尽力解决所有这些问题。Backand - registered_users中有两种类型的用户对象,它们包括被授予使用Backand应用程序权限的身份验证实体和users,后者与其他应用程序一样,是Backand应用程序中的数据库对象。registered_users表仅用于管理与身份验证相关的详细信息,并且应该将特定于用户应用程序的数据分配给特定于用户的数据,并将其存储在数据模型的users对象中。
Backand平台使用安全操作试图维护这两个表之间的链接。这意味着(如果您没有修改默认操作),当用户注册时,平台将在users对象中创建一个新条目,在从应用程序中删除该用户时,从users对象中删除该用户,并且它将尝试将接收到的任何更新推送到users对象。虽然不能修改registered_users对象以添加或删除字段,但可以提供一个参数哈希,该操作将用于填充User对象。该参数具有相当简单的"column": "value"格式,其中column是应用程序的自定义用户对象中列的名称,value是希望插入到该列中的值。有关更多细节,请参见http://docs.backand.com/#signup
请注意,如果字段不存在,或者标记为必需,但未提供,则调用将失败,并在users和registered_users之间造成差异。
我们的目标之一是尽可能减少对开发人员的限制--我们的上述方法说明了这一点。我们必须处理许多不同的潜在用例,而且并不是所有的用例都通过与users对象的更深层次集成而得到帮助--这样做会使users对象成为必需的组件,从而影响应用程序的模式和结构。然后,围绕用户对象的所有权添加安全限制只会增加隐藏的复杂性--虽然对应用程序来说是必要的,但并不是每个应用程序都有必要。
只对用户拥有的对象进行编辑,有几种方法可以在Backand中实现:
每一种方法都有其积极和消极之处。第一种方法使应用程序的逻辑保持接近,但不会防止恶意实体更改通过SDK发出的web请求发送给Backand的参数。第二种方法可以工作,但将以与您的应用程序体系结构不兼容的方式在全球范围内应用。第三种方法是最好的折衷方法,但增加了在多个位置管理相同代码的复杂性。有一些策略可以解决这个问题,但是正确的答案将在很大程度上取决于您特定应用程序的功能和特性。
https://stackoverflow.com/questions/43210850
复制相似问题