使用 Express.js、passport 和 JWT 实现用户认证

阅读时长 6 分钟读完

在网站和应用程序开发中,用户认证是一个必不可少的部分。本文将介绍如何使用 Express.js、passport 和 JWT 实现用户认证,让您的应用程序更安全、更可靠。

什么是 Passport?

Passport 是一个 Node.js 的用户认证库,它提供了一种易于使用和灵活的方式来处理用户身份验证和授权。它支持多种身份验证策略,包括用户名和密码、OAuth、OpenID 等。

什么是 JWT?

JWT(JSON Web Token)是一种用于信息交换的开放标准,它可以安全地将声明(例如用户身份信息)存储在 Token 中。这些 Token 是由服务器签署的,并且由于服务器具有它们的签名密钥,因此可以验证它们。

如何使用 Express.js、passport 和 JWT 实现用户认证?

下面是一个使用 Express.js、passport 和 JWT 实现用户认证的示例:

1. 安装依赖项

使用 npm 安装以下依赖项:

2. 配置应用程序

在你的应用程序中,你需要配置和初始化 Passport、JSON Web Token 和 bcrypt:

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

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

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

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

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

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

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

3. 添加用户认证路由

下面是一个使用 JSON Web Token 和 Passport 进行用户认证的路由处理程序示例:

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

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

4. 测试用户认证

现在你可以测试你的用户认证功能了。使用以下命令启动应用程序:

然后使用 cURL 或 Postman 发送 POST 请求:

如果认证成功,你将得到一个 JSON Web Token。使用以下命令发送 GET 请求:

如果 JSON Web Token 有效,你将得到用户信息的 JSON 数据。

总结

使用 Express.js、passport 和 JWT 实现用户认证并不难。使用上面的示例代码,你可以快速和简单地添加用户认证和授权功能到你的应用程序中。现在你可以放心地部署你的应用程序了!

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

纠错
反馈