如何在 Express.js 中使用 JSON Web Token(JWT) 的认证

JSON Web Token(JWT)是一种用于在网络应用之间安全传输信息的开放标准。JWT 由三部分组成:头部、载荷和签名。头部和载荷是 JSON 对象,签名是一个哈希值,用于验证消息的完整性。

在前端开发中,JWT 常用于用户认证和授权。本文将介绍如何在 Express.js 中使用 JWT 进行认证。

安装依赖

在开始之前,需要安装以下依赖:

  • express:用于创建 Express 应用程序
  • jsonwebtoken:用于生成和验证 JWT
  • body-parser:用于解析 HTTP 请求的请求体

可以使用以下命令安装这些依赖:

生成 JWT

在 Express.js 中生成 JWT 的过程包括以下几个步骤:

  1. 创建一个 JWT 的 payload 对象,其中包含需要传递的信息,例如用户 ID。
  2. 使用 jsonwebtoken 模块的 sign 方法生成 JWT。该方法接受三个参数:payload 对象、密钥和选项。
  3. 将 JWT 作为响应的一部分返回给客户端。

示例代码如下:

在上面的示例代码中,我们使用 jwt.sign 方法生成 JWT,并将其作为响应的一部分返回给客户端。expiresIn 选项指定 JWT 的过期时间,这里设置为 1 小时。

验证 JWT

在 Express.js 中验证 JWT 的过程包括以下几个步骤:

  1. 获取 HTTP 请求的 Authorization 头部,该头部应包含 JWT。
  2. 使用 jsonwebtoken 模块的 verify 方法验证 JWT。该方法接受三个参数:JWT、密钥和选项。
  3. 如果验证成功,则将解码后的 JWT 存储在请求对象的 decoded 属性中,以便后续处理程序使用。

示例代码如下:

在上面的示例代码中,我们使用 Express.js 的中间件函数来验证 JWT。如果 JWT 验证失败,则返回 403 状态码,否则将解码后的 JWT 存储在请求对象的 decoded 属性中,以便后续处理程序使用。

总结

本文介绍了如何在 Express.js 中使用 JWT 进行认证。通过本文的示例代码,我们可以了解到 JWT 的基本用法,并掌握如何在 Express.js 中生成和验证 JWT。

在实际开发中,JWT 可以帮助我们实现用户认证和授权,提高应用程序的安全性。因此,掌握 JWT 的使用方法是每个前端开发人员必备的技能之一。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6562f9edd2f5e1655dcb4ac7


纠错
反馈