Node.js 为Moodle创建LTI提供程序
我正在尝试为Moodle创建LTI提供程序。 我需要从Moodle获得的东西-课程名称、学生和老师,以及启用单一登录(获取会话、令牌、cookie…) 我做了一项研究,发现Moodle 3支持LTI v2,这基本上是通过REST API与Moodle通信的原因,但没有看到可选端点的API引用或代码示例(寻找NodeJ,但欢迎使用其他语言) 有人有这方面的经验吗? 谢谢 这有点晚(很多),但可能会帮助其他人 我已经创建了Lti 1.3 advantage协议的nodejs实现,这使得设置Lti提供程序非常容易 下面是一个简单的用法示例:Node.js 为Moodle创建LTI提供程序,node.js,moodle,moodle-api,lti,Node.js,Moodle,Moodle Api,Lti,我正在尝试为Moodle创建LTI提供程序。 我需要从Moodle获得的东西-课程名称、学生和老师,以及启用单一登录(获取会话、令牌、cookie…) 我做了一项研究,发现Moodle 3支持LTI v2,这基本上是通过REST API与Moodle通信的原因,但没有看到可选端点的API引用或代码示例(寻找NodeJ,但欢迎使用其他语言) 有人有这方面的经验吗? 谢谢 这有点晚(很多),但可能会帮助其他人 我已经创建了Lti 1.3 advantage协议的nodejs实现,这使得设置Lti提供
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()
这有点晚了,但可能对其他人有帮助
我已经创建了Lti 1.3 advantage协议的nodejs实现,这使得设置Lti提供程序非常容易
下面是一个简单的用法示例:
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()