首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backand用户模型与注册用户

Backand用户模型与注册用户
EN

Stack Overflow用户
提问于 2017-04-04 14:59:47
回答 1查看 71关注 0票数 0

我需要指定firstName、lastName和email以外的其他字段,这似乎是在我的应用程序中调用Backand.user.getUserDetails()时返回给我的全部内容,尽管在模型中指定了更多的字段。因此,它似乎是把这些从“注册用户”中抽出,而不是“用户”模式?

我还希望能够允许用户更新这些字段。当然,我不希望用户能够更新其他用户的字段,这就是在任何一个具有角色" user“的模型项上运行更新似乎都能够做到的事情。

为了实现这一点,我需要添加很多服务器端功能吗?还是我的方法是错误的--真的会假设Backand是否会将其包括在内呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

请注意,如果字段不存在,或者标记为必需,但未提供,则调用将失败,并在usersregistered_users之间造成差异。

我们的目标之一是尽可能减少对开发人员的限制--我们的上述方法说明了这一点。我们必须处理许多不同的潜在用例,而且并不是所有的用例都通过与users对象的更深层次集成而得到帮助--这样做会使users对象成为必需的组件,从而影响应用程序的模式和结构。然后,围绕用户对象的所有权添加安全限制只会增加隐藏的复杂性--虽然对应用程序来说是必要的,但并不是每个应用程序都有必要。

只对用户拥有的对象进行编辑,有几种方法可以在Backand中实现:

  1. 在客户端完全在应用程序代码中实现保护。这使您在如何处理防止未经授权的用户进行更新方面具有最大的灵活性。
  2. 您可以使用预定义的过滤器来过滤对象,因为对象是为具有非管理角色的用户检索的。它可以从Objects -> object_name下的“对象”选项卡中获得。这里有一些关于如何开始的文档,但是最相关的部分是顶部的“向导”组件--默认代码应该做一些非常接近您正在寻找的事情。
  3. 对每个相关数据库操作(创建、更新、删除)使用自定义操作,以防止不拥有所使用对象的用户进行更新。

每一种方法都有其积极和消极之处。第一种方法使应用程序的逻辑保持接近,但不会防止恶意实体更改通过SDK发出的web请求发送给Backand的参数。第二种方法可以工作,但将以与您的应用程序体系结构不兼容的方式在全球范围内应用。第三种方法是最好的折衷方法,但增加了在多个位置管理相同代码的复杂性。有一些策略可以解决这个问题,但是正确的答案将在很大程度上取决于您特定应用程序的功能和特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43210850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档