前言
在前端开发中,我们经常会用到 Json Web Token(JWT)这个认证技术。为了方便使用 JWT 在 Hapi.js 项目中进行认证,@salzhrani 开发了一个 npm 包 @salzhrani/hapi-auth-jwt2。这个包可以在 Hapi.js 项目中很方便地使用 JWT 进行认证。
安装
在开始项目之前,我们需要先安装这个包。可以通过 npm 进行安装:
npm install @salzhrani/hapi-auth-jwt2
使用
在 Hapi.js 项目中使用 @salzhrani/hapi-auth-jwt2 只需要简单的几步:
- 引入插件
在项目中,我们需要引入 @salzhrani/hapi-auth-jwt2 插件,在 Hapi.js 中,可以这样引入:
await server.register(require('@salzhrani/hapi-auth-jwt2'));
- 配置策略
在引入插件之后,我们需要在项目中配置策略,指定 JWT 的验证规则和相关参数:
-- -------------------- ---- ------- --------------------------- ------ - ---- ------------------ -- --------- --- ----- ------ --------- ----- --------- -------- -- - -- -- --- ----- --- -- ------------------ - ------ - -------- ----- -- - ---- - ------ - -------- ---- -- - -- -------------- - ----------- --------- - -- -- --- ----- ----- --- ---------------------------
其中 decoded
是 JWT token 中的信息,可以根据此信息来验证 JWT token 是否合法。如果返回的 isValid
是 false
,则表示 JWT token 验证失败,无法访问资源。
- 验证路由
在项目中验证路由时,我们只需要在路由配置时添加 auth: 'jwt'
配置就可以了。例如:
-- -------------------- ---- ------- - ------- ------ ----- ------------ -------- - -------- ----- --------- -- -- - ------ ------- - - --------------------------------- -- ----- ----- -- ------------- --- ----- - -
这个路由在客户端请求时,需要在 Header 中添加 Authorization 信息,指定 JWT token,例如:
GET /api/user HTTP/1.1 Host: localhost:3000 Authorization: Bearer [your_jwt_token]
示例代码
下面是一个完整的示例代码:
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- ---- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ----------- --- ----- ------------------------------------------------------ --------------------------- ------ - ---- ------------------ --------- ----- --------- -------- -- - -- ------------------ - ------ - -------- ----- -- - ---- - ------ - -------- ---- -- - -- -------------- - ----------- --------- - --- --------------------------- -------------- ------- ------ ----- ------------ -------- - -------- ----- --------- -- -- - ------ ------- - - --------------------------------- -- ----- ----- - --- ----- --------------- ------------------- ------- -- ---- ----------------- -- -------------------------------- ----- -- - ----------------- ---------------- --- -------
结语
希望这篇文章能够帮助你在 Hapi.js 项目中使用 JWT 进行认证。若有疑问,欢迎在评论区留言。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005726d81e8991b448e8a48