【问题标题】:Creating a LTI provider for Moodle为 Moodle 创建 LTI 提供程序
【发布时间】:2016-11-09 10:51:11
【问题描述】:

我正在尝试为 Moodle 创建一个 LTI 提供程序。 我需要 Moodle 提供的东西 - 课程名称、学生和教师,以及启用单点登录(获取会话、令牌、cookie...)

我做了一项研究,发现 Moodle 3 支持 LTI v2,这基本上就是为什么要通过 REST API 与 Moodle 进行通信,但没有看到可选端点或代码示例的 API 引用(寻找 nodejs,但所有其他语言都将受到欢迎)

有人有这方面的经验吗? 谢谢!

【问题讨论】:

    标签: node.js moodle moodle-api lti


    【解决方案1】:

    这有点(很多)晚了,但它可能对其他人有所帮助。

    我已经创建了 Lti 1.3 优势协议的 nodejs 实现,这使得设置 lti 提供者变得超级容易。

    Ltijs

    这是一个简单的用法示例:

    const path = require('path')
    
    // Require Provider 
    const Lti = require('ltijs').Provider
    
    // Configure provider
    const lti = new Lti('EXAMPLEKEY', 
                { url: 'mongodb://localhost/database', 
                  connection:{ user:'user',
                              pass: 'pass'} 
                }, 
                { staticPath: path.join(__dirname, '/views/') })
    
    
    let setup = async () => {
      // Configure main routes
      lti.appUrl('/')
      lti.loginUrl('/login')
    
      // Deploy and open connection to the database
      await lti.deploy()
    
      // Register platform
      let plat = await lti.registerPlatform(
        'http://platform/url', 
        'Platform Name', 'ClientIdThePlatformCreatedForYourApp', 
        'http://platform/AuthorizationUrl', 
        'http://platform/AccessTokenUrl', 
        { method: 'JWK_SET', key: 'http://platform/keyset' }
      )
    
      // Set connection callback
      lti.onConnect((connection, request, response) => {
        // Call redirect function
        lti.redirect(response, '/main')
      })
    
      // Set route accounting for issuer context
      lti.app.get('/:iss/main', (req, res) => {
        // Id token
        console.log(res.locals.token)
        res.send('It\'s alive!')
      })
    }
    setup()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      相关资源
      最近更新 更多