npm 包 securejwt 使用教程

阅读时长 5 分钟读完

随着前端技术的飞速发展,越来越多的应用需要进行用户认证和授权。而 JSON Web Token (JWT) 是一种流行的身份验证和授权方式。npm 包 securejwt 封装了 JWT 的相关接口,为前端开发者提供了一种方便、安全的解决方案。

安装

在终端中运行以下命令:

使用方法

生成 token

其中,payload 为需要传输的数据,secret 为加密密钥。该方法返回生成的 token。

校验 token

其中,token 为需要校验的 token,secret 为加密密钥。该方法返回 token 包含的 payload。

若 token 不合法,将会抛出错误。

使用选项

可以通过传入选项来配置生成 token 和校验 token 的行为。例如:

-- -------------------- ---- -------
----- --------- - ---------------------

----- ------- - - --- --------- ----- ------- --
----- ------ - --------------

----- ----- - ----------------------- ------- -
    ---------- -----
    ---------- -------
---

----- ------- - ----------------------- ------- -
    ----------- ---------
---

支持的选项包括:

  • expiresIn: 设置 token 过期时间,单位为秒或时间字符串;
  • notBefore: 设置 token 有效时间,必须为时间字符串;
  • audience: 设置允许的目标;
  • issuer: 设置签发者;
  • jwtid: 设置 JWT ID;
  • subject: 设置主题;
  • noTimestamp: 设置不使用时间戳;
  • header: 设置 header 部分;
  • algorithm: 设置加密算法;
  • keyid: 设置公钥 ID;
  • mutatePayload: 设置是否改变 payload 对象;
  • ignoreExpiration: 设置是否忽略过期时间;
  • clockTolerance: 设置时钟容忍度;
  • algorithms: 设置支持的加密算法。

编码和解码

除了生成和校验 token 外,securejwt 还提供了一些辅助函数来编码和解码 token。

其中,encode 方法返回编码后的 token 字符串,decode 方法返回解码后的 header 和 payload 对象。

示例代码

生成 token:

校验 token:

-- -------------------- ---- -------
----- --------- - ---------------------

----- ----- - ---------------------------------------------------------------------------------------------------------------------------------------------------
----- ------ - --------------

--- -
    ----- ------- - ----------------------- --------
    ---------------------
- ----- ----- -
    ---------------------------
-

编码和解码:

-- -------------------- ---- -------
----- --------- - ---------------------

----- ------ - - ---- -------- ---- ----- --
----- ------- - - --- --------- ----- ------- --
----- ------ - --------------

----- ------- - ------------------------ -------- --------
---------------------

----- ------- - --------------------------
---------------------

结语

securejwt 是一个轻量级的 npm 包,可以方便地在前端应用中使用 JWT 进行身份认证和授权。使用该包需要保证 secret 的安全性,以避免发生安全问题。

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

纠错
反馈