我正在使用 pecl oAuth 库,是否可以构建一个如下所示的正文签名的 oauth 请求:
POST http://www.imsglobal.org/developers/BLTI/service_handle.php HTTP/1.0
Host: 127.0.0.1:80
Content-Length: 757
Authorization: OAuth realm="",oauth_version="1.0",
oauth_nonce="29f90c047a44b2ece73d00a09364d49b",
oauth_timestamp="1313350943",oauth_consumer_key="lmsng.school.edu",
oauth_body_hash="v%2BxFnmDSHV%2Fj29qhxLwkFILrtPo%3D",
oauth_signature_method="HMAC-SHA1",
oauth_signature="8auRpRdPY2KRXUrOyz3HKCs92y8%3D"
Content-type: application/xml
<?xml version = "1.0" encoding = "UTF-8"?>
... more xml data ...
我正在尝试使用 IMS Global LTI 标准接口与 Instruct 的 Canvas LMS 进行通信。这结果服务 http://www.imsglobal.org/lti/v1p1pd/ltiIMGv1p1pd.html#_Toc309649691让您可以使用以下方式将分数发送回 LMS:oauth 签名的 xml 消息 http://www.imsglobal.org/lti/v1p1pd/ltiIMGv1p1pd.html#_Toc309649688
事实证明,pecl oAuth 目前不支持 oaut_body_hash。
我最终使用了这个谷歌代码存储库中的 oAuth 库http://code.google.com/p/oauth/ http://code.google.com/p/oauth/计算身体有我自己:
$bodyHash = base64_encode(sha1($body, TRUE)); // build oauth_body_hash
$consumer = new \OAuthConsumer($key, $secret);
$request = \OAuthRequest::from_consumer_and_token($consumer, '', 'POST', $endpoint, array('oauth_body_hash' => $bodyHash) );
$request->sign_request(new \OAuthSignatureMethod_HMAC_SHA1(), $consumer, '');
$header = $request->to_header() . "\r\nContent-Type: application/xml\r\n"; // add content type header
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)