Coding 新版本webhook PHP签名解析

<?php
error_reporting(1);

// 项目仓库文件夹路径
$dir =  '/var/www/html/SmallPunchMiniProgramAfterEnd';


// Coding新版本的webhook若是设置了token,Coding则对每个请求进行了哈希签名
// 这个签名会放在请求头 X-Coding-Signature,在服务器端我们需要进行签名解析才能拿到真正数据

// token验证令牌,与Coding webhook上设置的一致,用于与Coding进行身份验证,防止恶意提交代码
$token = 'xxx';

// 从请求头中获取签名
$signature = $_SERVER['HTTP_X_CODING_SIGNATURE'];

// 接收Coding post传递的参数
$json_post = file_get_contents('php://input');

// 进行签名解析
$sha1 = hash_hmac("sha1",$json_post,$token);

$calculate_signature = 'sha1='. $sha1;

// 进行身份验证
if ($calculate_signature !== $signature) {
    exit('error request');
}

// shell_exec()即PHP用于执行系统命令的函数
// cd $dir:进入上面设置的项目仓库文件夹中
// git checkout -f 撤销本地的修改
// git pull origin master  从Coding的项目仓库master分支拉取最新代码,注意origin为远程仓库的别名,要与 git remote add 远程仓库
别名 仓库地址 中的远程仓库别名保持一致
echo shell_exec("cd $dir && git checkout -f && git pull origin master 2>&1");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值