在本文中,我们将看看 AppMaster.io 无代码平台如何解决应用程序用户访问数据的问题。

它通过引入诸如用户、版主、管理员和其他要求等角色来实现。该解决方案在您构建的应用程序内部提供了更大的灵活性,并控制了构建应用程序内部的信息和功能访问。

这篇文章对于任何想要深入了解 AppMaster.io 平台的功能并了解其在按角色访问数据的设置方面的功能的人都会很有用。

Мodule Auth by AppMaster.io

在我们平台上的组装应用程序中注册由Auth 模块表示,允许您创建和编辑用户组并访问他们的权限。 Auth 模块在创建时已预安装到项目中。

Мodule Auth by AppMaster.io

可用的身份验证模块设置:

SignUp Groups — 可以注册的用户组列表;

注册——包括在应用程序中注册的能力;

会话超时(分钟)- 如果用户空闲,当前用户会话将结束的时间(以分钟为单位)。默认为 60 分钟;

登录失败延迟(以毫秒为单位) — 登录尝试失败时服务器响应的延迟时间(以毫秒为单位)。默认为 0 毫秒;

需要电子邮件确认- 如果启用,该选项涉及通过电子邮件进行验证;

Signed-Up User Active — 将每个注册用户的active属性设置为True

— 允许您创建和编辑用户组。

AppMaster.io 使用数据模型设计器来处理模型。

用户和用户会话是在数据模型设计器中自动创建的两个模型。预装的数据模型字段不能修改或删除,但可以添加新的。

User and User Session

对于这些模型,还会自动创建业务流程 (BP) 块。

与用户和用户会话关联的自动生成的 BP

  • 用户模型

DB:删除用户——通过ID从数据库中删除对象用户;

Delete User in AppMaster

DB:Update User — 重置传递给数据库中输入的 User-object 块的所有字段,并根据指定的值更新它们(仅更改指定的字段,使用 DB:Patch User 块);

Update User

DB:创建用户——存储在数据库中并返回给定的用户对象(要从给定的字段构建它,使用 Make User 块);

Create User

DB:软删除用户——更新用户对象的 DeletedAt 属性并将其保留在数据库中;

Soft Delete User

DB:批量删除用户——将一组用户对象的 ID (ids) 数组作为输入,这些对象将从数据库中删除;
failed_ids — 不会被删除的用户 ID 数组;

Bulk Delete User

DB: Patch User — 更新数据库中 User 对象的指定字段(要重置所有字段,请使用 DB:Update User 块);

Patch User

DB:搜索用户——根据字段在数据库中查找一个或多个用户对象并返回;

Search User

DB:GetOne User——通过ID在数据库中查找User对象并返回;

GetOne User

展开用户— 返回所选用户对象的所有字段;

Expand User

Make User — 根据给定的字段在内存中创建一个新的 User 对象并将其返回(要将创建的对象保存在数据库中,请使用 DB: Create User 块);

Make User

  • 用户会话模型

DB:删除用户会话——通过传递的 ID 从数据库中删除用户会话对象;

Delete User Session

DB:更新用户会话——重置传递给数据库中输入块的用户会话对象的所有字段,并根据指定的值更新它们(只更改指定的字段,使用DB:补丁用户会话);

Update User Session

DB:创建用户会话— 存储在数据库中并返回给定的用户会话对象(要从给定的字段构建它,请使用 Make User Session 块);

Create User Session

DB:软删除用户会话——更新用户会话对象的 DeletedAt 属性并将其保留在数据库中;

Soft Delete User Session

DB:批量删除用户会话——接受一组将从数据库中删除的用户会话对象的 ID 作为输入;
failed_ids — 该数组定义了一组不会被删除的 ID;

Bulk Delete User Session

DB: Patch User Session — 更新数据库中 User Session 对象的指定字段(要重置所有字段,请使用 DB:Update User Session 块);

Patch User Session

DB:Search User Session——根据字段在数据库中查找一个或多个User Session对象并返回;

Search User Session

DB:GetOne User Session——通过ID在数据库中找到User Session对象并返回;

GetOne User Session

展开用户会话——返回所选用户会话对象的所有字段;

Expand User Session

Make User Session — 从给定字段在内存中创建一个新的 User Session 对象并返回它(要将创建的对象保存在数据库中,使用 DB: Create User Session 块);

Make User Session

  • 认证模块

Auth:Generate Auth Token——生成给定长度的授权令牌(Auth Token);

Generate Auth Token

Auth:注册——注册一个新用户;

Auth: Registration

Auth:授权——检查系统中是否存在Auth Token并返回与之关联的用户;

Auth: Authorization

Auth: Authentification——检查用户的登录名和密码,并返回一个Auth Token;

Auth: Authentification

Auth: Logout — 接受 Auth Token 并终止当前用户会话;

Auth: Logout

Auth:获取当前用户——返回当前用户的数据;

Auth: Get current user

Auth: Remove user from the group — 根据用户的 ID(在 Auth 模块的设置中定义)从指定的组中删除用户;

Auth: Remove user from group

Auth: 将用户添加到组— 通过其 ID(在 Auth 模块设置中定义)将用户添加到指定的用户组;

Auth: Add user to the group

Auth: Hash Password — 将密码字符串转换为哈希值;

Auth: Hash Password

Auth:Restore Password——接受用户的用户名和新密码,从而重置它;

Auth: Restore Password

Auth:更改密码——用新密码替换当前用户密码;

Auth: Change Password

Auth:Probe Password——验证密码和哈希匹配;

Auth: Probe Password

Auth Module 的 Endpoints 以及 User 和 User Session 模型是在项目创建时自动生成的。

认证模块

请求类型 端点 连接BP
post type /登出/验证:注销
post type /认证/认证:认证
post type /登记/授权:注册
get type /确认/授权:注册
put type /用户/更改密码授权:更改密码
post type /用户/恢复密码/验证:恢复密码
get type /用户资料/ Auth:授权

用户

请求类型端点连接BP
put type /用户身份/ DB:更新用户
delete type /用户身份/ DB:删除用户
get type /用户身份/ DB:GetOne 用户
get type /用户/ DB:搜索用户
patch type /用户身份DB:补丁用户
post type /用户/ DB:创建用户

用户会话

请求类型端点连接BP
delete type /用户会话/:id/ DB:删除用户会话
get type /用户会话/:id/ DB:GetOne 用户会话
get type AppMaster /用户会话/ DB:搜索用户会话
patch type AppMaster /用户会话/:id/ DB:补丁用户会话
post type AppMaster /用户会话/ DB:创建用户会话
put type AppMaster /用户会话/:id/ DB:更新用户会话

Auth Token用作授权用户的当前会话令牌。在 Web 应用程序 BP 中,可以与此令牌进行交互:

  1. Get Auth Token返回当前认证用户会话的 Auth;
    Get Auth Token returns the Auth of the current authenticated user session
  2. Set Auth Token覆盖授权用户当前会话的 Auth Token;
    Set Auth Token
  3. Remove Auth Token删除授权用户当前会话的Auth Token;
    Remove Auth Token

该示例显示了如何获取当前用户。

为此,请转到业务逻辑选项卡并拖动身份验证:获取当前用户块。

接下来为创建的BP创建一个Endpoint,用于联系服务器获取当前User的对象。

在 Endpoints 部分选择用户组,并为新创建的进程创建一个 GET 请求方法以获取当前用户。

在 Web 应用程序 BP 中,向创建的端点(服务器请求 GET /user_current)发出请求以获取当前用户。

组和权限

用户组是在 Auth 模块的设置中创建的。要进入模块设置,您需要打开模块部分并单击相应模块的卡片。

组选项卡包含所有现有组的列表。单击添加新元素以创建新用户组。在新的模态窗口中,您可以自定义组、添加描述、图标、图标和标签颜色以及标签。

pMaster" data-mce-src="https://ws.apms.io/api/_files/SRiacHHyULYU6EqLSbrp6e/download/">

要编辑现有用户组,您还需要转到 Auth 模块的设置。为此,请转到“模块”部分并单击相应模块的卡片。接下来,在“组”选项卡中,将提供组列表,要对其进行编辑,您需要单击设置图标。在新的模态窗口中,您可以自定义组、更改其描述、图标、图标和标签颜色以及标签。

Editing existing user groups

为了改变某些用户组对数据库中条目的读/写权限,使用了 Auth 模块的中间件。

在 Endpoints 部分中,选择要更改其读/写权限的 Endpoint。单击所需端点中的设置按钮,然后转到打开的模式窗口中的中间件选项卡。接下来,通过单击 Token Auth Middleware 行中的 Edit settings,设置访问权限。

Access to pages in the web application

访问 Web 应用程序中的页面:您需要转到 Web 应用程序并单击要限制访问的页面的设置按钮。

在显示组字段中,您必须选择允许查看此页面的用户组列表。默认情况下,该字段为空,允许所有类别的用户访问。

Access to pages in the web application 2

结论

按角色访问数据是为特定用户组组织信息流的便捷方式。使用无代码平台AppMaster.io ,您可以在试用中测试此功能。

如果您对该功能印象深刻,请获取我们的专业计划,其中包括此功能、二进制文件导出、定期备份、项目传输等等。我们在AppMaster.io平台上等您来实施您最大胆的项目。