简介
在前端类应用中,使用 JWT(JSON Web Token)进行用户认证和授权是目前比较流行的做法,因为 JWT 有轻量、跨域和无状态等优点。@tanepiper/hapi-auth-jwt 是一个 Node.js 的插件,使用起来简单,可以和 Hapi 框架一起使用,用来验证 JWT。
安装
可以使用 npm/yarn 安装 @tanepiper/hapi-auth-jwt。
npm install @tanepiper/hapi-auth-jwt --save
使用
首先在 Hapi 框架中注册插件:
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- --- - ------------------------------------ ----- --- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ----------- --- ----- --------------------- -- --- -
然后,在路由中加入验证:
{ method: 'GET', path: '/users/{id}', handler: usersHandler, options: { auth: 'jwt' } }
这里使用了 options.auth 来开启验证,同时在 server.auth.strategy 中使用 jwt 的 schema 来进行配置,并填写 jwtOptions 参数。
-- -------------------- ---- ------- --------------------------- ------ - ---- -------------- --------- ------------- -------------- - ----------- - ------- - - --- ----- ------------ - ----- --------- -------- -- -- - -- -- ----- ------------ ------ - -------- ----- ------------ ---- -- --
其中 key 为 JWT 生成时使用的密钥,validate 函数用来验证 JWT 是否有效,如果有效,就可以得到 JWT 存储的用户信息。verifyOptions 则是 JWT 验证的其他参数,这里的 algorithms 是规定使用的算法。
示例代码
-- -------------------- ---- ------- ----- ---- - ---------------------- ----- --- - ------------------------------------ ----- --- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ----------- --- ----- --------------------- --------------------------- ------ - ---- -------------- --------- ------------- -------------- - ----------- - ------- - - --- -------------- ------- ------ ----- -------------- -------- ----- --------- -- -- - ------ ----- ---------------------- -- -------- - ----- ----- - --- ----- --------------- ------------------- ------- --- --------------------- -- ----- ------------ - ----- --------- -------- -- -- - -- ----- -- -- --- - ----- ---- - ----- -------------------- -- ------- - ------ - -------- ----- -- - ------ - -------- ----- ------------ ---- -- -- ----- ------- - ----- ---- -- - -- -- -- ------- ------ - --- ----- ------ -- - ------
总结
@tanepiper/hapi-auth-jwt 是一个简单且易用的 JWT 验证插件,它适用于 Hapi 框架,并且可以方便地进行验证的配置。在使用它的时候,我们需要加入验证的路由,并在验证方法中返回验证结果。同时,verifyOptions 中参数的设置也很重要,我们需要选择合适的算法,并对数据有效期等信息进行正确的设置,才能保证 JWT 的安全性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005672281e8991b448e391c