UNPKG

@atomicjolt/lti-client

Version:

Client Javascript libraries to handle LTI.

29 lines (26 loc) 774 B
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; }