本文整理汇总了PHP中lti_sign_parameters函数的典型用法代码示例。如果您正苦于以下问题:PHP lti_sign_parameters函数的具体用法?PHP lti_sign_parameters怎么用?PHP lti_sign_parameters使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了lti_sign_parameters函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: disabled_test_sign_parameters
/**
* This test has been disabled because the test-tool is
* being moved and probably it won't work anymore for this.
* We should be testing here local stuff only and leave
* outside-checks to the conformance tests. MDL-30347
*/
public function disabled_test_sign_parameters()
{
$correct = array('context_id' => '12345', 'context_label' => 'SI124', 'context_title' => 'Social Computing', 'ext_submit' => 'Click Me', 'lti_message_type' => 'basic-lti-launch-request', 'lti_version' => 'LTI-1p0', 'oauth_consumer_key' => 'lmsng.school.edu', 'oauth_nonce' => '47458148e33a8f9dafb888c3684cf476', 'oauth_signature' => 'qWgaBIezihCbeHgcwUy14tZcyDQ=', 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => '1307141660', 'oauth_version' => '1.0', 'resource_link_id' => '123', 'resource_link_title' => 'Weekly Blog', 'roles' => 'Learner', 'tool_consumer_instance_guid' => 'lmsng.school.edu', 'user_id' => '789');
$requestparams = array('resource_link_id' => '123', 'resource_link_title' => 'Weekly Blog', 'user_id' => '789', 'roles' => 'Learner', 'context_id' => '12345', 'context_label' => 'SI124', 'context_title' => 'Social Computing');
$parms = lti_sign_parameters($requestparams, 'http://www.imsglobal.org/developer/LTI/tool.php', 'POST', 'lmsng.school.edu', 'secret', 'Click Me', 'lmsng.school.edu');
$this->assertTrue(isset($parms['oauth_nonce']));
$this->assertTrue(isset($parms['oauth_signature']));
$this->assertTrue(isset($parms['oauth_timestamp']));
// Those things that are hard to mock
$correct['oauth_nonce'] = $parms['oauth_nonce'];
$correct['oauth_signature'] = $parms['oauth_signature'];
$correct['oauth_timestamp'] = $parms['oauth_timestamp'];
ksort($parms);
ksort($correct);
$this->assertEquals($parms, $correct);
}
示例2: lti_view
//.........这里部分代码省略.........
$typeid = $instance->typeid;
}
if ($typeid) {
$typeconfig = lti_get_type_config($typeid);
} else {
//There is no admin configuration for this tool. Use configuration in the lti instance record plus some defaults.
$typeconfig = (array)$instance;
$typeconfig['sendname'] = $instance->instructorchoicesendname;
$typeconfig['sendemailaddr'] = $instance->instructorchoicesendemailaddr;
$typeconfig['customparameters'] = $instance->instructorcustomparameters;
$typeconfig['acceptgrades'] = $instance->instructorchoiceacceptgrades;
$typeconfig['allowroster'] = $instance->instructorchoiceallowroster;
$typeconfig['forcessl'] = '0';
}
//Default the organizationid if not specified
if (empty($typeconfig['organizationid'])) {
$urlparts = parse_url($CFG->wwwroot);
$typeconfig['organizationid'] = $urlparts['host'];
}
if (!empty($instance->resourcekey)) {
$key = $instance->resourcekey;
} else if (!empty($typeconfig['resourcekey'])) {
$key = $typeconfig['resourcekey'];
} else {
$key = '';
}
if (!empty($instance->password)) {
$secret = $instance->password;
} else if (!empty($typeconfig['password'])) {
$secret = $typeconfig['password'];
} else {
$secret = '';
}
$endpoint = !empty($instance->toolurl) ? $instance->toolurl : $typeconfig['toolurl'];
$endpoint = trim($endpoint);
//If the current request is using SSL and a secure tool URL is specified, use it
if (lti_request_is_using_ssl() && !empty($instance->securetoolurl)) {
$endpoint = trim($instance->securetoolurl);
}
//If SSL is forced, use the secure tool url if specified. Otherwise, make sure https is on the normal launch URL.
if ($typeconfig['forcessl'] == '1') {
if (!empty($instance->securetoolurl)) {
$endpoint = trim($instance->securetoolurl);
}
$endpoint = lti_ensure_url_is_https($endpoint);
} else {
if (!strstr($endpoint, '://')) {
$endpoint = 'http://' . $endpoint;
}
}
$orgid = $typeconfig['organizationid'];
$course = $PAGE->course;
$requestparams = lti_build_request($instance, $typeconfig, $course);
$launchcontainer = lti_get_launch_container($instance, $typeconfig);
$returnurlparams = array('course' => $course->id, 'launch_container' => $launchcontainer, 'instanceid' => $instance->id);
if ( $orgid ) {
$requestparams["tool_consumer_instance_guid"] = $orgid;
}
if (empty($key) || empty($secret)) {
$returnurlparams['unsigned'] = '1';
//Add the return URL. We send the launch container along to help us avoid frames-within-frames when the user returns
$url = new moodle_url('/mod/lti/return.php', $returnurlparams);
$returnurl = $url->out(false);
if ($typeconfig['forcessl'] == '1') {
$returnurl = lti_ensure_url_is_https($returnurl);
}
$requestparams['launch_presentation_return_url'] = $returnurl;
}
if (!empty($key) && !empty($secret)) {
$parms = lti_sign_parameters($requestparams, $endpoint, "POST", $key, $secret);
} else {
//If no key and secret, do the launch unsigned.
$parms = $requestparams;
}
$debuglaunch = ( $instance->debuglaunch == 1 );
$content = lti_post_launch_html($parms, $endpoint, $debuglaunch);
echo $content;
}
示例3: lti_build_content_item_selection_request
//.........这里部分代码省略.........
if (!empty($typeconfig['password'])) {
$secret = $typeconfig['password'];
}
}
$tool->enabledcapability = '';
if (!empty($typeconfig['enabledcapability_ContentItemSelectionRequest'])) {
$tool->enabledcapability = $typeconfig['enabledcapability_ContentItemSelectionRequest'];
}
$tool->parameter = '';
if (!empty($typeconfig['parameter_ContentItemSelectionRequest'])) {
$tool->parameter = $typeconfig['parameter_ContentItemSelectionRequest'];
}
// Set the tool URL.
if (!empty($typeconfig['toolurl_ContentItemSelectionRequest'])) {
$toolurl = new moodle_url($typeconfig['toolurl_ContentItemSelectionRequest']);
} else {
$toolurl = new moodle_url($typeconfig['toolurl']);
}
// Check if SSL is forced.
if (!empty($typeconfig['forcessl'])) {
// Make sure the tool URL is set to https.
if (strtolower($toolurl->get_scheme()) === 'http') {
$toolurl->set_scheme('https');
}
// Make sure the return URL is set to https.
if (strtolower($returnurl->get_scheme()) === 'http') {
$returnurl->set_scheme('https');
}
}
$toolurlout = $toolurl->out(false);
// Get base request parameters.
$instance = new stdClass();
$instance->course = $course->id;
$requestparams = lti_build_request($instance, $typeconfig, $course, $id, $islti2);
// Get LTI2-specific request parameters and merge to the request parameters if applicable.
if ($islti2) {
$lti2params = lti_build_request_lti2($tool, $requestparams);
$requestparams = array_merge($requestparams, $lti2params);
}
// Get standard request parameters and merge to the request parameters.
$orgid = !empty($typeconfig['organizationid']) ? $typeconfig['organizationid'] : '';
$standardparams = lti_build_standard_request(null, $orgid, $islti2, 'ContentItemSelectionRequest');
$requestparams = array_merge($requestparams, $standardparams);
// Get custom request parameters and merge to the request parameters.
$customstr = '';
if (!empty($typeconfig['customparameters'])) {
$customstr = $typeconfig['customparameters'];
}
$customparams = lti_build_custom_parameters($toolproxy, $tool, $instance, $requestparams, $customstr, '', $islti2);
$requestparams = array_merge($requestparams, $customparams);
// Allow request params to be updated by sub-plugins.
$plugins = core_component::get_plugin_list('ltisource');
foreach (array_keys($plugins) as $plugin) {
$pluginparams = component_callback('ltisource_' . $plugin, 'before_launch', [$instance, $toolurlout, $requestparams], []);
if (!empty($pluginparams) && is_array($pluginparams)) {
$requestparams = array_merge($requestparams, $pluginparams);
}
}
// Media types. Set to ltilink by default if empty.
if (empty($mediatypes)) {
$mediatypes = ['application/vnd.ims.lti.v1.ltilink'];
}
$requestparams['accept_media_types'] = implode(',', $mediatypes);
// Presentation targets. Supports frame, iframe, window by default if empty.
if (empty($presentationtargets)) {
$presentationtargets = ['frame', 'iframe', 'window'];
}
$requestparams['accept_presentation_document_targets'] = implode(',', $presentationtargets);
// Other request parameters.
$requestparams['accept_copy_advice'] = $copyadvice === true ? 'true' : 'false';
$requestparams['accept_multiple'] = $multiple === true ? 'true' : 'false';
$requestparams['accept_unsigned'] = $unsigned === true ? 'true' : 'false';
$requestparams['auto_create'] = $autocreate === true ? 'true' : 'false';
$requestparams['can_confirm'] = $canconfirm === true ? 'true' : 'false';
$requestparams['content_item_return_url'] = $returnurl->out(false);
$requestparams['title'] = $title;
$requestparams['text'] = $text;
$signedparams = lti_sign_parameters($requestparams, $toolurlout, 'POST', $key, $secret);
$toolurlparams = $toolurl->params();
// Strip querystring params in endpoint url from $signedparams to avoid duplication.
if (!empty($toolurlparams) && !empty($signedparams)) {
foreach (array_keys($toolurlparams) as $paramname) {
if (isset($signedparams[$paramname])) {
unset($signedparams[$paramname]);
}
}
}
// Check for params that should not be passed. Unset if they are set.
$unwantedparams = ['resource_link_id', 'resource_link_title', 'resource_link_description', 'launch_presentation_return_url', 'lis_result_sourcedid'];
foreach ($unwantedparams as $param) {
if (isset($signedparams[$param])) {
unset($signedparams[$param]);
}
}
// Prepare result object.
$result = new stdClass();
$result->params = $signedparams;
$result->url = $toolurlout;
return $result;
}
示例4: lti_get_launch_data
//.........这里部分代码省略.........
if (!empty($typeconfig['resourcekey'])) {
$key = $typeconfig['resourcekey'];
} else {
$key = '';
}
}
if (!empty($instance->password)) {
$secret = $instance->password;
} else {
if (!empty($typeconfig['password'])) {
$secret = $typeconfig['password'];
} else {
$secret = '';
}
}
}
$endpoint = !empty($instance->toolurl) ? $instance->toolurl : $typeconfig['toolurl'];
$endpoint = trim($endpoint);
// If the current request is using SSL and a secure tool URL is specified, use it.
if (lti_request_is_using_ssl() && !empty($instance->securetoolurl)) {
$endpoint = trim($instance->securetoolurl);
}
// If SSL is forced, use the secure tool url if specified. Otherwise, make sure https is on the normal launch URL.
if (isset($typeconfig['forcessl']) && $typeconfig['forcessl'] == '1') {
if (!empty($instance->securetoolurl)) {
$endpoint = trim($instance->securetoolurl);
}
$endpoint = lti_ensure_url_is_https($endpoint);
} else {
if (!strstr($endpoint, '://')) {
$endpoint = 'http://' . $endpoint;
}
}
$orgid = $typeconfig['organizationid'];
$course = $PAGE->course;
$islti2 = isset($tool->toolproxyid);
$allparams = lti_build_request($instance, $typeconfig, $course, $typeid, $islti2);
if ($islti2) {
$requestparams = lti_build_request_lti2($tool, $allparams);
} else {
$requestparams = $allparams;
}
$requestparams = array_merge($requestparams, lti_build_standard_request($instance, $orgid, $islti2));
$customstr = '';
if (isset($typeconfig['customparameters'])) {
$customstr = $typeconfig['customparameters'];
}
$requestparams = array_merge($requestparams, lti_build_custom_parameters($toolproxy, $tool, $instance, $allparams, $customstr, $instance->instructorcustomparameters, $islti2));
$launchcontainer = lti_get_launch_container($instance, $typeconfig);
$returnurlparams = array('course' => $course->id, 'launch_container' => $launchcontainer, 'instanceid' => $instance->id, 'sesskey' => sesskey());
// Add the return URL. We send the launch container along to help us avoid frames-within-frames when the user returns.
$url = new \moodle_url('/mod/lti/return.php', $returnurlparams);
$returnurl = $url->out(false);
if (isset($typeconfig['forcessl']) && $typeconfig['forcessl'] == '1') {
$returnurl = lti_ensure_url_is_https($returnurl);
}
$target = '';
switch ($launchcontainer) {
case LTI_LAUNCH_CONTAINER_EMBED:
case LTI_LAUNCH_CONTAINER_EMBED_NO_BLOCKS:
$target = 'iframe';
break;
case LTI_LAUNCH_CONTAINER_REPLACE_MOODLE_WINDOW:
$target = 'frame';
break;
case LTI_LAUNCH_CONTAINER_WINDOW:
$target = 'window';
break;
}
if (!empty($target)) {
$requestparams['launch_presentation_document_target'] = $target;
}
$requestparams['launch_presentation_return_url'] = $returnurl;
// Allow request params to be updated by sub-plugins.
$plugins = core_component::get_plugin_list('ltisource');
foreach (array_keys($plugins) as $plugin) {
$pluginparams = component_callback('ltisource_' . $plugin, 'before_launch', array($instance, $endpoint, $requestparams), array());
if (!empty($pluginparams) && is_array($pluginparams)) {
$requestparams = array_merge($requestparams, $pluginparams);
}
}
if (!empty($key) && !empty($secret)) {
$parms = lti_sign_parameters($requestparams, $endpoint, "POST", $key, $secret);
$endpointurl = new \moodle_url($endpoint);
$endpointparams = $endpointurl->params();
// Strip querystring params in endpoint url from $parms to avoid duplication.
if (!empty($endpointparams) && !empty($parms)) {
foreach (array_keys($endpointparams) as $paramname) {
if (isset($parms[$paramname])) {
unset($parms[$paramname]);
}
}
}
} else {
// If no key and secret, do the launch unsigned.
$returnurlparams['unsigned'] = '1';
$parms = $requestparams;
}
return array($endpoint, $parms);
}
示例5: get_signed_lti_params
/**
* Get the signed lti parameters
* uses Oauth-1x
*
* @param string $endpoint
* @param string $method
* @param int $courseid
* @param array $params
* @return array
*/
public function get_signed_lti_params($endpoint, $method = 'GET', $courseid = null, $params = array())
{
global $DB;
if (empty($courseid)) {
throw new Zend_Exception(get_string('no_course_id', LOCAL_BINUMI_PLUGIN_NAME), E_USER_ERROR);
}
if (!$this->_config->has_lti_config()) {
throw new Zend_Exception(get_string('no_lti_config', LOCAL_BINUMI_PLUGIN_NAME), E_USER_ERROR);
}
$course = $DB->get_record('course', array('id' => (int) $courseid), '*', MUST_EXIST);
$key = $this->_config->get_consumer_key();
$secret = $this->_config->get_shared_secret();
$query_params = $this->get_lti_params($course);
return lti_sign_parameters(array_replace($query_params, $params), $endpoint, $method, $key, $secret);
}