简介
universal-github-app-jwt 是一个 Node.js 模块,提供了一种用于和 GitHub 应用通信握手认证的方法,支持生成和解析 JSON Web Tokens (JWT)。
安装
你可以通过 npm 直接安装 universal-github-app-jwt:
--- ------- ------------------------
用法
在使用 universal-github-app-jwt 之前,你需要先从 GitHub 应用管理界面获取应用的私钥(PEM)和应用 ID。然后,在代码中导入 universal-github-app-jwt 模块,并配置应用的认证信息:
----- --- - ------------------------------------ ----- ------------- - ----------- ------- -------- ----- --- ------- ---- -------- ------- ---------- ----- ----- - ----- --- ---- ----- -------------- - ------------- ---- ----- ----------- - ------------- ------ ------- ----- --------- - ---------------------------------- -------
其中,appPrivateKey 就是你在应用管理界面生成的 PEM 私钥;appId 是你的应用 ID;installationId 是你要验证的 GitHub 应用实例的安装 ID;accessToken 是你在安装 GitHub 应用实例时获取的访问令牌。
接下来,你可以使用 authToken 和相关参数生成 JWT 令牌,以及解析 JWT 令牌:
----- --- - ------------------------------------ ----- ------------- - ----------- ------- -------- ----- --- ------- ---- -------- ------- ---------- ----- ----- - ----- --- ---- ----- -------------- - ------------- ---- ----- ----------- - ------------- ------ ------- -- -- --- -- ----- -------- - --------------------------------- ------ ---------------- -- -- --- -- ----- ---------- - -----------------------------
在上面这段代码中,createJwtToken 方法接受 PEM 私钥、应用 ID 和安装 ID 作为参数,用于生成 JWT 令牌。verifyJwtToken 方法接受 JWT 令牌作为参数,返回解码后的令牌内容。
示例代码
下面是一个完整的示例,其中通过使用 universal-github-app-jwt 生成和解析 JWT 令牌,并打印出令牌的信息:
----- --- - ------------------------------------ ----- ------------- - ----------- ------- -------- ----- --- ------- ---- -------- ------- ---------- ----- ----- - ----- --- ---- ----- -------------- - ------------- ---- ----- ----------- - ------------- ------ ------- -- -- --- -- ----- -------- - --------------------------------- ------ ---------------- -- -- --- -- ----- ---------- - ----------------------------- ------------------------
总结
universal-github-app-jwt 是一个方便的 Node.js 模块,用于和 GitHub 应用通信握手认证。通过本文提供的使用方法,你可以轻松地生成和解析 JWT 令牌,确保你的代码与 GitHub 应用实例之间的通信安全可靠。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedb23fb5cbfe1ea061112e