npm 包 @muhammadghazali/sails-permissions 使用教程

阅读时长 9 分钟读完

如果你正在开发一个基于 SailsJS 的 Web 应用程序,并且需要对用户权限进行管理,那么你可以使用 @muhammadghazali/sails-permissions。它是一个已经封装好的 npm 包,可以帮助你轻松地实现完整的用户权限系统。 本文将为你详细讲解如何使用 @muhammadghazali/sails-permissions。

1. 安装并配置

在安装 @muhammadghazali/sails-permissions 之前,您需要确保在您的 Sails 项目中安装了 TypeScript。

接下来,执行以下命令来安装 @muhammadghazali/sails-permissions:

安装后,您需要在 Sails 应用程序中初始化 @muhammadghazali/sails-permissions。在 config/bootstrap.ts 文件中添加以下代码:

这将在启动 Sails 应用程序时初始化 @muhammadghazali/sails-permissions。请注意,这里的“选项”对象将是您在 Sails 应用程序中自定义配置的地方。您可以在该 npm 包的 GitHub 页面中找到所有可用选项的详细说明。

2. 添加角色和权限

在使用 @muhammadghazali/sails-permissions 之前,您需要定义用户角色以及每个角色可以执行的操作(即权限)。这可以通过以下两个步骤来完成:

2.1. 添加角色

您可以通过使用 Sails 中的“角色”模型来创建新角色。打开 api/models 文件夹,创建一个新文件名为 Role.ts,内容如下:

-- -------------------- ---- -------
------ - ----- - ---- ---------------------------------------------------
------ - -------- ----------- -------------- ------- ---------- ---------- ---------- ------ - ---- -----------------------

---------- -- -----
------ ----- ---- ------- ----------- -
  -----------
  --------------
  -------
  ---- -------

  -----------------
  -------
  ------ -------

  ----------- -- ----------- - --------- --------- --
  ------------- -------------

  ----------
  -------
  ----------- -----

  ----------
  -------
  ----------- -----
-

这是一个标准的 Model 类,用于定义“角色”对象。您需要将其添加到 api/models/index.ts 文件中:

-- -------------------- ---- -------
---- --------

------ - --------- - ---- -----------------------
------ - ---- - ---- ---------
------ - ---------- - ---- ---------------

------ ----- ------ - ------ ------------

----- --- - -------------------- -- --------------
----- ------ - ----------------- - -----------------------------

------ ----- --------- - --- -----------
  --------- ----------------
  --------- ----------------
  --------- ----------------
  ----- ------------
  ----- ------------
  -------- ------
  -------- ---------------
  ------- -------
  ------- -
    ----------- -----
    --------- -----
    ------------ -----
  --
---

------ ----- -------- ------ -
  ----- -------------------------
  ----- ---------------- ------ ---- ---
-

2.2. 添加权限

接下来,您需要为每种角色定义可以执行的操作(即权限)。您可以通过使用 Sails 中的“权限”模型来完成。打开 api/models 文件夹,创建一个新文件名为 Permission.ts,内容如下:

-- -------------------- ---- -------
------ - ----- - ---- ---------------------------------------------------
------ - ---------- ------- ---------- ----------- ----------- --------- - ---- -----------------------
------ - ---- - ---- ---------

------ ----- ---------- ------- ----------------- -
  -----------
  -------
  ---- -------

  -------
  -------- -------

  -------
  --------- -------

  -------------- -- -----
  -------
  --------- -------

  ------------- -- -----
  ------ -----

  ----------
  -------
  ----------- -----

  ----------
  -------
  ----------- -----
-

这也是一个标准的 Model 类,用于定义“权限”对象。您需要将其添加到 api/models/index.ts 文件中:

-- -------------------- ---- -------
---- --------

------ - --------- - ---- -----------------------
------ - ---- - ---- ---------
------ - ---------- - ---- ---------------

------ ----- ------ - ------ ------------

----- --- - -------------------- -- --------------
----- ------ - ----------------- - -----------------------------

------ ----- --------- - --- -----------
  --------- ----------------
  --------- ----------------
  --------- ----------------
  ----- ------------
  ----- ------------
  -------- ------
  -------- ---------------
  ------- -------
  ------- -
    ----------- -----
    --------- -----
    ------------ -----
  --
---

------ ----- -------- ------ -
  ----- -------------------------
  ----- ---------------- ------ ---- ---
-

3. 进行授权和认证

现在您已经定义了您的角色和权限,您需要在应用程序中进行授权和认证。启用 @muhammadghazali/sails-permissions 后授权和认证非常容易。让我们看一下如何完成此任务。

3.1. 启用认证

首先,在 Sails 应用程序的 config/security.ts 文件中启用 Sails 的认证策略。请将以下代码添加到该文件中:

在这里,我们添加了一个名为“rolePermission”的策略。它将在用户登录后通过 @muhammadghazali/sails-permissions 进行验证,并且仅允许访问有权访问的页面。我们将在下面进一步讨论如何创建这个策略。

3.2. 创建认证策略

接下来,我们将创建“rolePermission”策略。在 config/policies.ts 文件中添加以下代码:

-- -------------------- ---- -------
----------------------- - -
  ---- -----
  ---
  ------------------ -
    ---- --------------
    ------------ -----------------
  --
  ---
--

在这里,我们设置了一个 Policy,将其应用于 AdminController 的 dashboard 操作。此策略将检查用户是否有权访问特定页面,如果是,则允许其访问。否则,将向用户显示错误消息。

3.3. 创建用户

现在,您需要创建一个具有角色的用户。您可以通过在 Sails 应用程序中的 config/bootstrap.ts 文件中添加以下代码来完成此操作:

-- -------------------- ---- -------
------ - --------- - ---- -------------------------------------
------ - ----------- ---------- - ---- ----------------------------------------------------------------

------ ------- ----- ------------- ---- -
  ----- -------------- -
    ----------
  ---

  ----- --------------------
  ----- ------------------- -------------------- ----------- ---------
-

这将创建一个名为“admin”的角色和一个名为“admin”的用户,并将其分配给“admin”角色。

4. 总结

现在,您已经知道如何使用 @muhammadghazali/sails-permissions 来安全授权和认证用户,并创建了“角色”和“权限”对象,以定义哪些权限可以分配给不同的用户角色。本文介绍了如何配置您的 Sails 应用程序,包括如何创建新的角色和权限。希望这篇文章能够帮助您学习 @muhammadghazali/sails-permissions 的使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bcc967216659e2447f1

纠错
反馈