简介
JSON Web Token(JWT)是一种用于安全地传输信息的标准。在 Web 开发中,通常通过 JWT 进行身份验证和授权。而 npm 包 is-jwt-utils 则是一个用于检验和解码 JWT 的工具包,方便前端开发者快速进行 JWT 的校验和使用。
安装
在使用该 npm 包之前需要先安装它。可以通过以下命令进行安装:
npm install is-jwt-utils
使用
在使用 is-jwt-utils 时,需要引入该包:
const JwtUtils = require('is-jwt-utils');
检验 JWT 的有效性
检验 JWT 是否有效的方法非常简单,只需传入 JWT 和秘钥即可。示例代码如下:
-- -------------------- ---- ------- ----- --- - -------------------------------------------------------------------------------------------------------------------------------------------------------------- ----- ------ - --------- ----- ----- - -------------------- -------- -- ------- - ---------------- ------- - ---- - ---------------- ----- -
解码 JWT
解码 JWT 后可以得到其中的 payload 数据,也就是传输的信息。示例代码如下:
const jwt = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; const payload = JwtUtils.decode(jwt); console.log(payload);
设置默认秘钥
如果有多处需要使用秘钥进行校验,可以将秘钥设置为默认秘钥。示例代码如下:
const defaultSecret = 'secret'; JwtUtils.setDefaultSecret(defaultSecret);
现在,在调用校验和解码方法时,如果没有传入具体的秘钥,则会默认使用这个秘钥。
将过期时间转换为时间戳
如果 JWT 中包含了过期时间(exp), 可以使用 is-jwt-utils 包中的 expTimestamp 方法将其转换为时间戳。示例代码如下:
const jwt = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjE1MTYyMzk1MjJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'; const timestamp = JwtUtils.expTimestamp(jwt); console.log(timestamp);
结语
is-jwt-utils 包为前端开发者提供了一个方便快捷的解决 JWT 校验和解码的工具,可以大大提升开发效率。同时,对于对 JWT 不太了解的开发者,本文也提供了一些基本用法的简单介绍和示例代码,希望对大家使用该包有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055aa981e8991b448d830e