在前端开发领域中,开发者经常需要跟 Github 交互。如果您正在为 Github 开发应用程序或自动化脚本,那么您需要一种方法来验证 Github 事件是否合法。is-valid-github-event 是一个 NPM 包,允许您验证 Github 的事件,并确保它们来自合法的来源。
什么是 Github 事件
Github 事件是 Github 发出的 Webhook 服务器发送给您提供的 URL 的 HTTP POST 请求,用于通知您发生的事件。对于每种事件类型,Github 都会尝试发送相应的 JSON 负载。对于一个简单的 push 事件,负载可能如下所示:
-- -------------------- ---- ------- - ------ -------------------- --------- ------------------------------------------- -------- ------------------------------------------- ---------- ------ ---------- ------ --------- ------ ----------- ----- ---------- ---------------------------------------------------------------------- ---------- - - ----- ------------------------------------------- ----------- ----- ---------- ------ ---- -------- -- --- ----- ------------ ---------------------------- ------ ---------------------------------------------------------------------------------- --------- - ------- ---- -------- -------- ------------------ ----------- --------- -- ------------ - ------- ---- -------- -------- ------------------ ----------- --------- -- -------- --- ---------- --- ----------- - ------------------ - - -- -------------- - ----- ------------------------------------------- ----------- ----- ---------- ------ ---- -------- -- --- ----- ------------ ---------------------------- ------ ---------------------------------------------------------------------------------- --------- - ------- ---- -------- -------- ------------------ ----------- --------- -- ------------ - ------- ---- -------- -------- ------------------ ----------- --------- -- -------- --- ---------- --- ----------- - ------------------ - -- ------------- - ----- --------- ------- -------- ------------ --------------- -------- - ------- --------- -------- -------------------- -- ---------- ------ ----------- ---------------------------------- -------------- -- ------------ ---- ------------ -------- ------- ------ ------ ---------------------------------- ------------- ----------- ------------- ----------------------- ------------ ----------- ----------- --- ------- ---- ------------------- ------ ----------------- ------ ----------- --------------- ------------- ----- --------------- ----- ---------------- ----- ----------- ----- ------------ ------ -------------- ----- ------------- ----- ----------- ------ -------------------- --- ---------- ----- -------- ----- -------------- --- ----------- ------ ----------------- --------- ------------- ------ ---------------- -------- -- --------- - ------- -------- -------- ------------------ -- --------- - -------- -------- ----- ---- ---------- --------------- ------------- --------------------------------------------------- -------------- --- ------ ------------------------------------- ----------- --------------------------- ---------------- ----------------------------------------------- ---------------- ------------------------------------------------------------ ------------ ----------------------------------------------------- -------------- ------------------------------------------------------------ -------------------- --------------------------------------------------- -------------------- ------------------------------------------ ------------ ------------------------------------------- ------------- ------------------------------------------------------ ---------------------- ----------------------------------------------------- ------- ------- ------------- ----- - -
npm 包 is-valid-github-event 的作用
从上面的负载中可以看到,有许多不同的消息类型。每种消息类型需要不同的验证方式。is-valid-github-event 包封装了验证 Github 事件的过程。
具体来说,is-valid-github-event 允许您:
- 验证传入的 json 数据是一个已知的 Github 事件类型
- 验证事件签名,以确保 Github 事件确实来自于 Github,并且未被篡改
npm 包 is-valid-github-event 的使用
下面我们来详细介绍 npm 包 is-valid-github-event 的使用方法。
1. 安装 is-valid-github-event
首先,您需要将 is-valid-github-event 安装到您的项目中,您可以通过在终端中输入以下命令来完成安装:
npm install --save is-valid-github-event
2. 引入 is-valid-github-event
在您的代码中引入 is-valid-github-event 包:
const isValidGithubEvent = require('is-valid-github-event')
3. 验证 Github 事件
现在我们来编写一个代码片段,用于验证 Github 事件:
-- -------------------- ---- ------- ----- ----- - -------------------- -------- ------- ---------- - ---------- - ----------- ---- ------ - -- ----------- -------- ------- ------------- ------------ ------------------------------------------------ --------- --------------------- --- -- ------- - ------------------- ---------- - ---- - ----------------- ------ -------------- -
在该代码中,我们重点描述了如下四个计算机参数:
- event:Github 事件的名称;
- payload:Github 事件携带的负载数据;
- signature:Github 对事件签名的 hmac;
- secret:您在 Github 中为挂载点设置的 webhook 密钥。
如果验证成功,isValidGithubEvent 函数将返回 true,否则将返回 false。
示例代码
在这里,我们提供了一个完整的代码示例,以更好地展示如何在您自己的代码中使用 is-valid-github-event 包:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------------------ - --------------------------------- ----- ---- - ----- ----- ------ - ---------------------- ----------------------- ---- -- - ----- ------ - --- -------------- ----- -- -------------------- ------------- -- -- - ----- ------ - ---------------------- ----- --- - ------------------------------- ----- ----- - ------------------------------ ----- -- - --------------------------------- ----- ------- - ------------------ ----- ----- - -------------------- ------ -------- ---------- ---- ------- -- --- -- ------- - --------------- ------ -------- ------------------ ---------------- --------------------- ------------------------------------ ------- - ---- - ----------------- ------ -------------- ------------------ ---------------- --------------------- ------------------------------------ ------- - --- ---------------- ------------------- -- ------- -------- -----------
在实际代码中,您可以根据需要更改 secret、port 或任何其他变量。
结论
通过本文,您现在已经知道 is-valid-github-event 的 npm 包是如何工作的,以及如何验证来自 Github 的事件。这个包的用途很广泛,您可以在自己的应用程序或自动化脚本中使用它,以确保 Github 事件的有效性。如果您想知道更多有关该包的信息,请查看官方文档(https://github.com/nlf/is-valid-github-event )。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600559e681e8991b448d78a5