回调模式 php验证失败,七牛云回调验证失败

按照官方的sdk走了一遍,测试七牛云,结果回调验证总是失败,真TM无语。

得到token:

/**

* 得到上传token的方法

*/

public function fetchUploadToken()

{

// 初始化Auth状态

$auth = new Auth($this->accessKey, $this->secretKey);

$policy = [

'callbackUrl' => 'http://我的回调域名/acceptQiniuUploadCallback',

'callbackBody' => '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)"}',

'callbackBodyType' => 'application/json'

];

$upToken = $auth->uploadToken($this->bucket, null, $this->expires, $policy, true);

echo $upToken;

}

上传的:

public function uploadFileToQiniu()

{

$uploadToken = $_POST['uploadToken'];

$uploadMgr = new UploadManager();

list($ret, $err) = $uploadMgr->put($uploadToken, null, 'test qiniu upload');

if ($err !== null) {

var_dump($err);

} else {

var_dump($ret);

}

}

PS: 上传是返回的success,也就是上传是没问题的。

回调方法:

public function acceptQiniuUploadCallback()

{

$auth = new Auth($this->accessKey, $this->secretKey);

//获取回调的body信息

$callbackBody = file_get_contents('php://input');

//回调的contentType

$contentType = 'application/x-www-form-urlencoded';

//回调的签名信息,可以验证该回调是否来自七牛

$authorization = $_SERVER['HTTP_AUTHORIZATION'];

//七牛回调的url,具体可以参考:http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html

$url = 'http://我的回调域名/acceptQiniuUploadCallback';

$isQiniuCallback = $auth->verifyCallback($contentType, $authorization, $url, $callbackBody);

if ($isQiniuCallback) {

$resp = array('ret' => 'success');

} else {

$resp = array('ret' => 'failed');

}

echo json_encode($resp);

}

收到的七牛云带过来的参数是:

callbackBody:{\"key\":\"Fm2SqeglnKIi8UDYJ7_WhhR8fybG\",\"hash\":\"Fm2SqeglnKIi8UDYJ7_WhhR8fybG\",\"fsize\":17,\"bucket\":\"test\"}",

头信息中的authhorization:

QBox KhMpusItBI66r4HjARLLeLrACyq0CFWVhltvxZRQ:PGtDDftzjgB4MFW5A5LF_5pXgpc=

验证就是过不了,也就是这一行:

$isQiniuCallback = $auth->verifyCallback($contentType, $authorization, $url, $callbackBody);

总TM返回false, 不知道其它人遇到过没,真是屎一样的文档,测试都不能直接通过。也没个错误提示。有没有遇到过类似情况的兄dei,帮忙看看,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值