我已经使用express.js框架创建了一个简单的“hello-world”网络应用程序。
我希望该应用程序兼容IMS-LTI,以便使moodle和其他学习管理系统可以将其作为外部工具启动。
但是,我不了解如何在我的应用程序(它使用oauth)中对LTI启动进行身份验证,并且我也找不到任何有关如何完成此操作的express.js/node.js示例。我看到存在一个password-lti Node 模块(https://www.npmjs.org/package/passport-lti),但是作为一个带有 Node 的菜鸟,我只是不了解稀疏的文档。
我曾使用passport.js创建本地身份验证-使用此视频(https://www.youtube.com/watch?v=twav6O53zIQ),我希望为LTI启动身份验证提供类似的帮助...
任何帮助表示赞赏。
干杯,
奥利
最佳答案
当LTI工具使用者(即LMS)启动LTI应用程序(工具提供者)时,会向LTI工具发送HTTP帖子。
为了验证帖子是否合法,您需要使用配置LTI工具时与工具使用者交换的共享 key 在本地重新计算签名,以验证帖子变量'oauth_signature'是否有效。
验证OAuth签名的 Action 很可能是由OAuth库处理的。nodejs已经拥有了这些,因此请不要重新实现。
您可以在IMS Global documentation中阅读验证启动请求的完整过程