@atomicjolt/lti-client
Version:
Client Javascript libraries to handle LTI.
29 lines (26 loc) • 774 B
text/typescript
import { LaunchSettings } from "../types";
import { loadState } from "../libs/platform_storage";
async function validateLaunch(settings: LaunchSettings): Promise<boolean> {
if (settings.ltiStorageParams) {
// We have lti postMessage storage
try {
console.log("Using postMessage state validation");
const state = await loadState(settings.state, settings.ltiStorageParams);
if (state == settings.state) {
return true;
}
return false;
} catch (e) {
console.error(e);
return false;
}
}
return false;
}
export async function ltiLaunch(settings: LaunchSettings): Promise<boolean> {
if (!settings.stateVerified) {
const result = await validateLaunch(settings);
return result;
}
return true;
}