Я ищу любой образец кода для интеграции внешнего инструмента в LMS с использованием LTI в NodeJS, но найти рабочий пример довольно сложно. я просмотрел образец, предоставленный IMS Global, но это трудно понять. кто-нибудь, у кого есть идеи, как авторизовать приложение с помощью LTI, поделитесь своим кодом.
Пример совместимости с LTI для потребителя и поставщика
comment
У меня такая же проблема. Это немного беспокоит, когда у глобального стандарта взаимодействия мало или совсем нет примеров, которые можно найти в Интернете. Вы нашли ответ на свой вопрос?
- person Ben Smith   schedule 15.08.2017
Ответы (3)
Я перенес код omsmith из CoffeeScript в обычный JavaScript и поместил его на Packagist:
https://github.com/tsugiproject/tsugi-node-lti
https://www.npmjs.com/package/tsugi-node-lti
person
drchuck
schedule
11.02.2018
Поиск Github дал следующие примеры приложений Node LTI:
Надеюсь, один из них окажется для вас полезным.
person
colincr
schedule
23.10.2017
это немного поздно, но это может помочь кому-то еще.
Я создал реализацию протокола преимущества Lti 1.3 в 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()
person
Carlos Vinícius
schedule
06.07.2019