如何使用 hapi-auth-jwt2 在 Hapi 框架中进行 JWT 验证

· 约 5 分钟读完

引言

JSON Web Token,简称 JWT,是一个开放标准(RFC 7519),用于在对信息进行安全传输时,将信息进行加密和签名。它使用普遍可用的加密算法进行加密,使用 Base64 编码进行转换,可以在不同的平台(用户端、服务器端)之间安全地传递信息,让安全传输变得更加简便。本文将介绍如何在 Hapi 框架中使用 hapi-auth-jwt2 对 JWT 进行验证。

Hapi 简介

Hapi 是一个 Node.js 框架,它采用插件机制,可以让开发者方便地添加更多的功能。它的设计理念是帮助开发者构建可复用、高度组合的 API 和 Web 应用程序。

hapi-auth-jwt2 简介

hapi-auth-jwt2 是 Hapi 框架中的一个插件,它提供了验证 JWT 的功能。它使用标准的 JSON Web Tokens,并利用 Hapi 插件机制进行验证。

安装 hapi-auth-jwt2

使用 npm 安装 hapi-auth-jwt2:

设置验证策略

使用 hapi-auth-jwt2 进行 JWT 验证的第一步是设置验证策略。验证策略主要包括验证函数和 JWT 密钥。

在以上代码中,我们首先导入必要的依赖项,然后定义验证方法 validateJWT 和 JWT 验证策略,最后将策略设置为默认的验证策略,启动服务器。需要注意的是,在 hapi-auth-jwt2 插件中,使用 auth.strategy() 将自定义的验证策略添加到服务器实例中,并将名称设置为 jwt。调用 auth.default() 方法设置默认验证策略。

生成 JWT

在 Hapi 框架中,我们可以使用 jsonwebtoken 组件来生成 JWT。下面的示例代码展示了如何生成一个 JWT:

在 createToken() 方法中,我们定义了 payloadValues 对象,它将在生成 JWT 时包含在负载(payload)中。我们还指定了 JWT_SECRET 密钥及过期时间 expiresIn,用于控制该 JWT 的有效期。最后,我们返回生成的 JWT。

测试 JWT 验证

在你的应用程序中,可以使用以下示例代码测试 JWT 的验证:

调用 createToken() 方法以生成一个 JWT,并将其作为 Bearer 认证标头传递到请求的 authorization 中。然后将请求的 URL 发送到服务器,并获取服务器的响应结果。如果 JWT 有效,服务器将响应成功。否则,将返回未经授权的错误。

小结

使用 hapi-auth-jwt2 插件可以让我们在 Hapi 框架中方便地实现 JWT 验证。在本文中,我们为您介绍了如何使用 hapi-auth-jwt2 插件来设置 JWT 验证策略、生成 JWT 以及测试 JWT 验证。您可以使用这些步骤来在 Hapi 应用程序中实现与 JWT 相关的功能。

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