GitHub Webhook秘密永远不会验证

 subingyi84 发布于 2022-12-21 22:05

我正在使用GitHub webhook将事件传递给我的应用程序(GitHub的Hubot的一个实例),并使用sha1秘密进行保护.

我正在使用以下代码验证传入webhooks上的哈希值

crypto    = require('crypto')
signature = "sha1=" + crypto.createHmac('sha1', process.env.HUBOT_GITHUB_SECRET).update( new Buffer request.body ).digest('hex')
unless request.headers['x-hub-signature'] is signature
  response.send "Signature not valid"
  return

在webhook中传递的X-Hub-Signature标头看起来像这样

X-Hub-Signature:sha1 = 1cffc5d4c77a3f696ecd9c19dbc2575d22ffebd4

我按照GitHub的文档准确传递密钥和数据,但哈希总是不同.

这是GitHub的文档. https://developer.github.com/v3/repos/hooks/#example

这是我最有可能误解的部分

secret:作为X-Hub-Signature标头与HTTP请求一起传递的可选字符串.使用秘密作为密钥,将此标头的值计算为正文的HMAC十六进制摘要.

谁能看到我哪里出错了?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有