To Our Amazing Educators Everywhere,
Happy Teacher Appreciation Week!
Found this content helpful? Log in or sign up to leave a like!
I have a tool that is is using LTI 1.3 with custom field
test.developer=bart
testTakerIds=["548ab123-8ab0-4bff-b152-e2dcbeffd315"]
I noticed that dots and camel case are being transformed into following in JWT token:
test_developer=bart
testtakerids=["548ab123-8ab0-4bff-b152-e2dcbeffd315"]
I could not find a requirement on LTI documentation that restrict usage of any symbols inside custom claims.
Why is this happening and how I could disable this behaviour. I could not find any validation regarding payload of https://purl.imsglobal.org/spec/lti/claim/custom
I happened to stumble on this question, and then stumbled on the answer while looking for something else.
This is due to the IMS standard that is used for LTI custom key/value parameters:
From: IMS LTI Implementation Guide
custom_keyname=value
The creator of an LTI link can add custom key/value parameters to a launch which are to be included with the launch of the LTI link. The Common Cartridge section below describes how these parameters are represented when storing custom parameters in a Common Cartridge.
When there are custom name / value parameters in the launch, a POST parameter is included for each custom parameter. The parameter names are mapped to lower case and any character that is neither a number nor letter in a parameter name is replaced with an "underscore". So if a custom entry was as follows:
Review:Chapter=1.2.56
it would be mapped to:
custom_review_chapter=1.2.56
Creators of LTI links would be well served to limit their parameter names to lower case and to use no punctuation other than underscores.
If these custom parameters are included in the LTI link, the TC must include them in the launch data or the TP may fail to function.
To participate in the Instructure Community, you need to sign up or log in:
Sign In