介绍
@nicolasparada/jwt-middleware
是一个用于验证 JSON Web Token(JWT)的中间件。它可以用于 Node.js 和 Express 应用程序中。该中间件使用 jsonwebtoken 库来验证和解码 JWT。
安装
使用 npm 安装 @nicolasparada/jwt-middleware
:
npm install @nicolasparada/jwt-middleware --save
使用
在 Express 应用程序中使用 @nicolasparada/jwt-middleware
:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------- - ----------------------------------------- ----- --- - ---------- ----------------------- ------- ----------- ---- ------------ ----- ---- -- - --------------- ------------------- ---
在上面的示例中,我们将中间件添加到 Express 应用程序中,并使用 secret
选项指定用于验证令牌的密钥。在 app.get
调用中,我们使用 req.user.name
访问从令牌中解码的用户名称。
该中间件还支持以下选项:
header
:JWT 令牌在请求中的头部字段,默认值为Authorization
。algorithm
:JWT 加密算法,默认值为HS256
。callback
:当 JWT 无效时调用的自定义回调函数,默认情况下返回 401 错误。
-- -------------------- ---- ------- ----------------------- ------- ------------ ------- --------------------- ---------- -------- --------- ----- ---- ---- ----- -- - -- ----- - ---------------------- -------- -------- ------ --- - ---- - ------- - - ----
示例
下面是一个完整的 Express 应用程序,演示如何使用 @nicolasparada/jwt-middleware
:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------------- - ----------------------------------------- ----- --- - ------------------------ ----- --- - ---------- ----- ----- - - - --- -- ----- ------- -- - --- -- ----- ----- -- - --- -- ----- --------- -- -- ------------------------ ------------ ----- ---- -- - --------------- --------- --- ------------------ ----- ---- -- - ----- - --------- -------- - - --------- ----- ---- - --------------- -- --------- --- ---------- -- ------ -- -------- --- ------- - ------ ---------------------- -------- -------- ------------ --- - ----- ----- - ---------- ---- -------- ----- --------- -- ------------- ---------- ----- --- --- ----------------------- ------- ----------- ---- ----------------- ----- ---- -- - ---------------- --- ---------------- -- -- - ------------------- --------- -- ---- ------- ---
在上面的应用程序中:
- 我们定义了一个包含三个用户的数组。
- 我们定义了一个
/login
路由,该路由获取用户名和密码并返回一个包含 JWT 的 JSON 响应。 - 我们将
jwtMiddleware
添加到应用程序中,这表示只有在客户端提供有效的 JWT 时才能访问/users
路由。 - 我们定义
/users
路由,它返回用户数组。
该应用程序模拟了一个用户验证系统,它要求用户提供用户名和密码才能获得访问权限。用户验证通过后,服务器将返回一个 JWT,然后客户端可以将此 JWT 用作身份验证凭据。只有在提供有效的 JWT 时才会访问 /users
路由。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005580681e8991b448d52a2