问题标签 [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 投票
0 回答
264 浏览

jquery - 在请求代码开始 oAUTH2 流时,您如何处理 CORS?

我正在尝试为本地托管的 Web 应用程序获取一个非常小的概念证明 oauth2 流程并访问云 oauth 提供商(Canvas LMS oauth2/LTI)。

我需要用户单击我的初始页面(本地 Web 应用程序)上的一个按钮,该按钮使用外部 oauth2 服务器启动该过程。

如果我将以下链接设为可点击的链接,那么我将获得用户授权页面,如果用户点击“接受”,则会提供授权代码。但我需要授权代码在我的 javascript 中可用,而不是显示在重定向页面上。

如果我使用 AJAX 进行调用,我会遇到 CORS 错误——这似乎是合法且基本的网络安全。

这是我尝试过的:

我不明白您如何调用身份验证服务器并获取您可以使用的代码(步骤 2,在 javascript 或 php 后端)来获取令牌。

任何帮助深表感谢 - 我很接近......只是错过了一些关键的核心概念(像往常一样)。

0 投票
1 回答
280 浏览

xml - 如何使用 oauth 签署 XML POST 请求?

我正在创建 LTI 工具,LTI 成绩簿的规范文档说请求必须是"Plain Old XML" (POX) messages signed using OAuth body signing [OAuth, 10]. 此处找到的 LTI 成绩簿文档

使用时application/x-www-form-urlencoded,它很容易,您将其oauth_signature作为 POST 请求数据的一部分包含在内,但是当它是 XML 时,我不明白将 oauth_signature 数据放在哪里。我错过了什么吗?

0 投票
1 回答
331 浏览

canvas - 如何在 Canvas LTI 2.0 中获取课程部分的详细信息

我想从 Canvas 获取课程部分的详细信息,我使用的是 LTI 2.0。根据 API 文档,我可以获得用户注册的部分 sis_id,但我没有得到这个。

https://canvas.instructure.com/doc/api/file.tools_variable_substitutions.html

注意:我已将该部分添加到课程中,并为其分配了 SIS id。

我找不到任何与版块相关的信息,如何获取用户注册的版块信息?

谢谢

0 投票
0 回答
452 浏览

http - 对 Moodle 的结果服务的 HTTP 请求随机失败

我目前正在开发一个问答游戏,作为 Moodle 中的一个外部工具。我遵循 IMS LTI 规范并根据需要使用 OAuth 进行身份验证。

我最近设法验证了来自 Moodle 的启动 POST 请求,现在我正在尝试使用 LTI 基本结果服务从我的工具将成绩发送回 Moodle。

这是我遇到问题的地方:我构建 POX 消息,签署请求并发送它,但由于某种原因,它们每隔几次尝试就成功一次(30% 的时间,或多或少)。对于其余部分,Moodle 会以失败的 POX 消息进行响应,其中包含“消息签名无效”作为其描述。

显然,我想相信我的请求会在我需要的时候成功。

出于说明目的,我在下面向您展示了一个成功请求和失败请求的示例,以及每个请求的基本字符串(OAuth 用于签名的字符串):

对于成功的请求:

  1. 请求的基本字符串(换行符仅用于显示目的):

POST&http%3A%2F%2F127.0.0.1%2Fmoodle%2Fmod%2Flti%2Fservice.php &oauth_body_hash%3DhPssgohenJEvtKta2so7Y27p3kU%253D%26oauth_callback%3Dabout%253Ablank %26oauth_consumer_key%3Dkey%26oauth_nonce%3D63cc0764c4cc4701abe28fa5fd406378 %26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1525940779%26oauth_version%3D1.0

  1. 回复正文:

    /li>

对于失败的请求:

  1. 请求的基本字符串(换行符仅用于显示目的):

POST&http%3A%2F%2F127.0.0.1%2Fmoodle%2Fmod%2Flti%2Fservice.php &oauth_body_hash%3DYLigJE%252B8wr7rCwOITqdc1IP3zFs%253D%26oauth_callback%3Dabout%253Ablank %26oauth_consumer_key%3Dkey%26oauth_nonce%3D6de4380ce2ab4d9a90e3fe1723dc5141 %26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1525940816%26oauth_version%3D1.0

  1. 回复正文:

    /li>

如您所见,两个基本字符串非常相似,我只能找到应该不同的部分(例如时间戳或随机数)的差异,所以我无法弄清楚为什么某些请求被拒绝而其他一些被接受。

关于这可能发生的原因的任何想法?关于如何找出的任何建议?

预先感谢您的帮助。

编辑:我在这里添加我在签名过程中使用的代码

0 投票
1 回答
1359 浏览

java - Moodle 与 Angular 应用程序的集成

我是moodle的新手,现在才开始。我正在尝试将 moodle 与我的应用程序集成(角度 4)。我的基本想法是使用穆德尔作为内容源,我有单独的应用程序,用户可以启动课程。我必须得到moodle网络服务的响应(课程进度)。

我刚刚陈述了文档。使用 LTI 我做了一些 poc 以在外部启动课程(静默 url)。但不幸的是它也记录了 moodle 应用程序。我不想登录moodle应用程序。我只想从我的另一个应用程序启动课程。

请分享您对上述方法的想法

0 投票
1 回答
673 浏览

php - LTI 与 Laravel 的集成

我正在尝试使用LTI 规范,因此我在 Moodle 上注册了一个指向我的 Laravel 应用程序的启动 URL。但我收到 419 状态错误。

我的 web.php:

我的启动网址:

任何人都可以帮忙吗?

0 投票
1 回答
1602 浏览

canvas-lms - 如何在 Canvas LMS 中设置 SMTP 设置?

我已经在本地安装了Canvas LMS,但我一直在寻找 SMTP 设置。你能帮我如何前进吗?我没有找到用于配置设置的 UI 屏幕。

0 投票
1 回答
64 浏览

amazon-web-services - 通过 API 网关调用的 lambda 将变量传递给 s3 Web 应用程序

基本上,我有一个应用程序需要对一些 Post 变量(LTI 消费者变量)进行身份验证。所以我的想法是我使用 lambda 在 s3 中使用一些变量对应用程序进行身份验证和服务。例如 -

LTI 消费者使用 POST 调用 -> https://mycoolapp.com -> API Gateway -> Lambda(验证 post 变量)-> 调用 s3 应用程序(成功时连同一些变量,例如 userID 等)

这是一个正确的方法,如果是这样,我该如何设置?

0 投票
1 回答
443 浏览

angular - 如何通过 HTTP POST 提供 asp.net 核心 Angular SPA

我正在尝试使用 asp.net 核心及其 Angular SPA 模板开发LTI工具。学习管理系统可以通过在他们的网站中嵌入一个 i-frame 来使用我的工具(这是一个 Web 应用程序),并且他们通过使用附加了附加表单数据的 HTTP POST 请求来做到这一点。如果我使用 asp.net 核心 MVC 项目,该 POST 请求将达到与 GET 请求相同的操作,并且将呈现所需的视图,但使用 Angular 项目模板,我将到达一个带有此消息的空 html 页面

无法发布 /

我可以通过添加带有[Post("/")]属性的操作并通过使用重定向到主页来解决问题,Redirect("/")但我想知道是否有更好的解决方案。

0 投票
0 回答
149 浏览

ruby-on-rails - 将 Google Apps LTI 集成到画布 lms

canvas lms在使用这个时集成外部工具,

有没有办法整合自己的谷歌凭证,而不是画布自己生成的?