npm 包 passport-tosan 使用教程

阅读时长 8 分钟读完

前言

在开发网站时,用户认证是不可避免的问题。而认证的实现也需要经过很多繁琐的过程。npm 包 passport-tosan 就是一种极其方便的解决方案,它可以帮助你在 Express 应用中简单快捷地添加用户认证功能。本文将详细介绍如何使用 passport-tosan。

安装

首先,我们需要在项目中安装该 npm 包。

同时,我们还需要安装一些基本的 npm 包:express、passport、passport-local、body-parser、cookie-parser 等。这些包可以通过 npm 在项目中直接安装。

配置

在引入 passport-tosan 之前,我们需要先完成一些准备工作。具体来说,我们需要在项目中建立数据库和定义用户模型。在这里,我们以 MongoDB 和 Mongoose 为例。

在数据库和用户模型建立完毕后,我们需要在项目中引入上述 npm 包,并对它们进行配置。如下所示:

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

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

以上配置仅仅是模板代码,其中要根据实际情况更改。比如这里的数据库地址是本地地址,而你可能需要用线上地址。

用户模型

至此,我们已经进行了基本的配置。下一步,我们需要定义用户模型。在这里,我们可以定义一个基本的用户模型,包括以下几个字段:用户名、密码、电子邮箱、创建时间和更新时间。

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

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

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

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

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

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

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

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

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

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

Passport 配置

接下来,我们需要对 passport 进行配置,并定义策略。在这里,我们使用 LocalStrategy 来进行身份验证。LocalStrategy 是一个寻常的策略,它用于用户名和密码进行身份验证。Passport 会从表单获取这两个数据并检查其合法性。如果认证成功,则 Passport 将一个令牌封装到回调函数中,供任何需要进行用户访问控制的端点使用。

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

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

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

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

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

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

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

对路由进行保护

在所有身份验证合法的请求中,Passport 会将当前的用户数据附加到 req.user 对象中。要对路由进行保护,我们可以添加一个中间件,检查用户是否处于认证状态。如果没有认证,则重定向到登录页。

添加用户注册路由

到了这一步,我们已经成功配置了 Passport 和定义了用户模型以及对路由进行了保护。下一步,我们需要添加注册和登录路由。在这里,我们以注册路由为例:

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

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

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

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

添加用户登录路由

最终,我们可以为用户添加登录路由,并将其保护。

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

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

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

结尾

passport-tosan 是一款相当流行的 npm 包,它可以帮助我们快速实现用户认证功能。当然,还有其他的认证 npm 包,不能因为某个 npm 包质量好就选择它,而应该根据实际情况选择最适合的 npm 包。

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

纠错
反馈