关于 GitHub 的 webhook 的 secret 的校验问题?
我的理解:
参考github的Webhook
文档
我理解为附加在Header
中的X-Hub-Signature
是由payload
和secret
通过sha1
加密生成的.
我的校验代码
public function check(Request $request){
$signature = "sha1=".hash_hmac('sha1',json_decode($request->payload), env('WEBHOOK_SECRET_TOKEN') );
if(strcmp($signature, $request->header('X-Hub-Signature')) == 0){
return true;
}
return false;
}
结果就是一直不匹配.
期间我参考了@shelter关于gitlab的webhook的大作
但是和我阅读github-webhook
的验证原理似乎不太一样.
没有什么头绪, 上来求助, 感谢!
json_encode($request->getContent())
@leo 感谢提醒!
我最后测试成功的代码是