如何使用 fastify-jwt 插件进行 JWT 认证?

推荐答案

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

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

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

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

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

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

本题详细解读

1. 安装 fastify-jwt 插件

首先,你需要安装 fastify-jwt 插件。可以通过以下命令安装:

2. 注册 fastify-jwt 插件

在 Fastify 应用中,你需要注册 fastify-jwt 插件,并提供一个密钥(secret)。这个密钥将用于签名和验证 JWT。

3. 生成 JWT

/login 路由中,你可以通过 fastify.jwt.sign 方法生成 JWT。这个方法接受一个对象作为参数,通常是用户的信息(如用户名、用户ID等),并返回一个签名的 JWT。

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

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

4. 验证 JWT

在需要认证的路由中,你可以使用 fastify.jwtVerify 作为 preHandler 钩子来验证 JWT。如果 JWT 有效,request.user 将包含解码后的 JWT 数据。

5. 启动服务器

最后,启动 Fastify 服务器,监听指定的端口。

通过以上步骤,你可以在 Fastify 应用中使用 fastify-jwt 插件来实现 JWT 认证。

纠错
反馈