The tough thing about LTI is that it assumes the piece of content you’re trying to serve is a single resource. So if you’re serving a video or a single HTML page, then cool. If your page is some sort of JS player that loads the content from an API after the page loads, you basically have to create a relay race of auth systems to tie it all together. This is a super common format (a JS lesson player that lazy loads each page/slide as needed) so a ton of people have had to solve this problem in different ways.
The standard is a classic patchwork of whatever is used by IMS members currently.
LTI 1.3 is the current active version, which deprecated 2.0.
But wait LTI is actually a collection of standards. AGS (assignment and grade services), DL (deep linking), dynamic registration, etc.
And they are optional, and LMSes implement them in slightly different ways.
So good times.
But wait, there's also the afterthought of 1.3 compatibility jury rigged on top of 1.0/1.1 implementations. Which leads to comical implementation details poking their ugly heads out :)
The tough thing about LTI is that it assumes the piece of content you’re trying to serve is a single resource. So if you’re serving a video or a single HTML page, then cool. If your page is some sort of JS player that loads the content from an API after the page loads, you basically have to create a relay race of auth systems to tie it all together. This is a super common format (a JS lesson player that lazy loads each page/slide as needed) so a ton of people have had to solve this problem in different ways.