问题标签 [lti]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1337 浏览

java - 无法为我的 IMS LTI 请求生成 oauth_signature

在 IMS Emulator ( http://ltiapps.net/test/tc.php ) 中单击“保存数据”,使用自动填充的数据生成 outh_signature 并将其作为隐藏值放入窗体 frmLaunch(name='frmLaunch ') 形式。我需要以编程方式生成类似的 outh_signature,但即使我使用相同的 oauth_nounce 和 oauth_timestamp,我也无法生成模拟器生成的确切 oauth_signature。我不确定生成时需要发送的请求正文是什么签名..

要重新创建场景,请按照以下步骤操作

  1. 点击网址http://ltiapps.net/test/tc.php
  2. 单击清除数据,然后在弹出窗口中单击确定
  3. 选择角色作为学习者,然后单击保存数据
  4. 保存数据后,您将看到一个 outh_signature 隐藏值,输入 id 为“oauth_signature”

    我尝试以以下方式生成,但无法获得预期的签名。

    pom.xml

    我通过发送如下请求正文尝试了上述程序,并获得了 oauth 签名为 0YI3mBg7gmnWaz8YyISG4IoHVQ4=但预期是yuuvR1pVDm5xWOYhMtBcBBVTdf8=

版本=LTI-1p0&reset=&endpoint=http://ltiapps.net/test/tp.php®ister=http://ltiapps.net/test/tp.php&key=jisc.ac.uk&secret=secret<i_message_type=basic-lti-launch-request&message_type=&tool=<i_version=LTI- 1p0&launch_presentation_locale=&launch_presentation_document_target=&launch_presentation_width=&launch_presentation_height=&launch_presentation_css_url=&launch_presentation_return_url=&custom=&ext=&signaturemethod=HMAC-SHA1&accept_media_types=&accept_presentation_document_targets=embed,frame,iframe,window,popup,overlay,none&content_item_return_url=http://ltiapps.net/test/tc- content.php&accept_unsigned=&accept_multiple=&accept_copy_advice=&auto_create=&title=&text=&data=&tool_consumer_instance_guid=&tool_consumer_instance_name=&tool_consumer_instance_description=&tool_consumer_instance_url=&tool_consumer_instance_contact_email=&tool_consumer_info_product_family_code=&tool_consumer_info_version=&context_id=&context_type=&a_context_type=&context_title=&context_label=&lis_course_offering_sourcedid=&lis_course_section_sourcedid=&resource_link_id=429785226&resource_link_title=&resource_link_description=&user_id=&lis_person_name_given=&lis_person_name_family=&lis_person_name_full=&lis_person_contact_email_primary=&lis_person_sourcedid=&roles=Learner&a_role=&user_image=&mentors= &username=&lis_outcome_service_url=&lis_result_sourcedid=&ext_ims_lis_basic_outcome_url=&ext_ims_lis_resultvalue_sourcedids=&ext_ims_lis_memberships_url=&ext_ims_lis_memberships_id=&ext_ims_lti_tool_setting_url=&ext_ims_lti_tool_setting_id=&setting=&custom_tc_profile_url=&custom_system_setting_url=&custom_context_setting_url=&custom_link_setting_url=&custom_lineitems_url=&custom_results_url=&custom_lineitem_url=&custom_result_url=&custom_context_memberships_url=&custom_link_memberships_url=&custom_caliper_federated_session_id=&custom_caliper_eventstore_url=&custom_caliper_api_key=custom_link_memberships_url=&custom_caliper_federated_session_id=&custom_caliper_eventstore_url=&custom_caliper_api_key=custom_link_memberships_url=&custom_caliper_federated_session_id=&custom_caliper_eventstore_url=&custom_caliper_api_key=

你能告诉我我哪里出错了..

0 投票
1 回答
129 浏览

ruby-on-rails - LTI OAuth 到 Rails/Ember/Ember 简单身份验证设计

我有一个使用 Devise 进行身份验证的现有 Rails 应用程序。我一直在添加一个 Ember 应用程序,使用带有 Simple Auth 的 Ember-CLI-Rails。一切正常。

但是我现在有一个额外的复杂情况,那就是第三方组织希望能够使用 LTI/OAuth 自动注册/登录用户——这样他们就可以直接从他们的应用程序跳转到我们的应用程序,而无需注册或登录,然后以登录用户的身份开始在我们的应用程序中工作。

如果以及如何将这一切融合在一起并发挥作用,我很难理解?

我正在考虑将登录/会话移回 Rails 的可能性?或者我可能在简单身份验证中有多种身份验证类型?等等

对此非常感谢任何想法或建议!

0 投票
1 回答
1527 浏览

php - 如何将成绩和自定义值从 LTI(学习工具互操作性)工具提供者返回到 Moodle

我正在使用PHP开发学习工具互操作性(LTI)版本 1.1.1的工具提供者(TP) 。

我想将成绩和自定义值从TP传递回Moodle LMS(即工具消费者)。

知道lis_result_sourcedid并且lis_outcome_service_url应该使用,但我不知道如何在 TP 程序中使用这些参数。

0 投票
0 回答
275 浏览

scipy - scipy 传递函数与状态空间

我有一个使用 scipy.signals 建模的 LTI 系统。但是在使用 TransferFunction 或 StateSpace 时我得到了不同的结果。除了波特图和阶跃响应的幅度不同之外,StateSpace 表示在我知道不存在的 LTI 系统上添加了另外两个零。我知道事实上这两个描述应该是等价的(至少我认为我是这样),因为我做了几次数学。有人可以帮我解释发生了什么吗?

对于传递函数:

StateSpace 的代码

结果图:

StateSpace 与 TransferFunction

还值得一提的是,我BadCoefficients: Badly conditioned filter coefficients (numerator): the results may be meaningless "results may be meaningless", BadCoefficients)在运行 StateSpace 代码时遇到了错误。

谢谢

0 投票
1 回答
379 浏览

.net - 如何从 ASP .Net 应用程序启动 Canvas LTI 消费者请求

我是 Canvas LMS 的新手。我有一些 Canvas LMS 的配置 XML(包括启动 URL、私钥和密钥)。我有自己的 .Net 应用程序,我想在我的 .Net 门户中的按钮单击事件上创建 LTI 请求,这将使用 XML 和键创建对 Canvas 门户的启动 LTI 请求。任何人都可以提供任何帮助文档或代码,以便我可以轻松实现它。谢谢。

0 投票
1 回答
1685 浏览

lti - LTI 和普通墨盒

我正在使用 Blackboard LMS,而且我是 LTI 员工的新手。我想知道什么是普通墨盒以及它与 LTI 有什么关系?还请说明它们之间有什么区别?

0 投票
3 回答
2057 浏览

javascript - 消费者和提供者的 LTI 兼容示例

我正在寻找任何代码示例,以在 NodeJS 中使用 LTI 将外部工具集成到 LMS,但似乎很难找到工作示例。我已经浏览了IMS Global提供的示例,但很难理解。任何知道如何使用 LTI 授权应用程序的人请分享您的代码。

0 投票
1 回答
577 浏览

moodle - LTI 2 工具代理注册失败,出现 400 或 500 错误

我正在用 Python 开发一个 LTI 工具提供程序,并且在 LTI 1.x 基本启动工作或内容项规范的任何方面都没有问题。尽管尝试使用 LTI 2 注册机制,但我遇到了巨大的障碍。

每当我在某些工具使用者上运行我的代码时,当我将工具代理发布到工具使用者配置文件中列出的工具代理端点时,我得到的只是 400 错误。

我试过这个:

  • http://lti.tools/test/tc.php(注册成功)
  • 在 AWS 上运行的 Moodle 3.2(400 错误请求)
  • Moodle 3.3 在本地主机上运行(成功注册)
  • 画布(400 错误请求){“错误”:“无效功能”}

不幸的是,没有什么能让我知道这个请求有什么不好的地方。我 90% 确定它是 JSON 或标题中的内容。我很确定它不是 oAuth(感谢下面的评论以及它在 4 个测试环境中的 2 个中工作的事实)

据说 Moodle 在某处为您提供了一些输出,但我到处寻找并没有找到它。我从站点管理员菜单打开了开发模式,并遵循了几个关于如何确保在 PHP 中记录错误并且我在任何地方都找不到任何内容的说明。

最初我无法让它在任何地方工作,但我能够将 xdebug 连接到本地 Moodle 3.3 实例,这就是我最终能够让它工作的方式。

这是来自 Canvas 的工具消费者资料:

这是我要发回的工具代理(我试图拉出任何看起来可选的东西。)

0 投票
2 回答
756 浏览

security - 通过 ssl 完成 OAuth 请求时是否需要验证 nonce?

我的应用程序实现了LTI,它使用 OAuth HMAC-SHA1 接收签名请求。他们看起来像:

该请求只能通过 SSL 发生(我们不实施其他连接选项)。所以我试图确定验证oauth_nonce. 我相信 nonce 的目的完全是为了防止重放攻击,这已经是 SSL 的一个特性。

存储 nonce 值会为每个用户花费金钱和浪费时间,所以我只想在它有一定价值的情况下这样做。

当通过 SSL 发出请求时,存储 nonces 和拒绝任何重复请求是否有价值?

0 投票
1 回答
45 浏览

canvas-lms - 如何使用 API 为在帐户级别安装的课程启用外部工具

我已经在我的 canvas-lms 中安装了一个 LTI 工具作为帐户级别,但我想使用 canvas 数据 API 在特定课程中以编程方式启用/禁用该工具。

如何为特定课程的帐户级别定义的工具启用导航位置?