npm 包 @dinoboff/ims-lti 使用教程

前言

在现今互联网时代,教育行业也逐渐数字化、智能化,利用 LTI(Learning Tools Interoperability)进行在线学习、智能评估等方面成为越来越普遍的需求。

在本篇文章中,我们将介绍一个很有用的 npm 包 @dinoboff/ims-lti,以及如何在前端项目中使用它来进行 LTI 相关操作。

@dinoboff/ims-lti 初探

@dinoboff/ims-lti 是一个基于 Node.js 的实现 LTI 版本 1.1 和 1.3 的库,提供了非常丰富的 LTI 功能。

这个库支持使用 Consumer Key 和 Consumer Secret 建立 LTI 连接,支持 LTI 1.3 的 OIDC Flow 连接和使用 JWT 认证,同时支持 LTI 中包含的消息类型,如 Launch、Auth、Outcome 等,在应用场景上也具有很大的可扩展性和可用性。

这个库已经被大量的教育类公司、项目使用,能够满足很多教育应用场景,值得我们进一步探究。

@dinoboff/ims-lti 安装

使用 @dinoboff/ims-lti,首先要在你的项目中安装它,你可以使用 npm 或者 yarn 安装。在终端中输入以下命令即可进行安装:

--- ------- ----------------- ------

或者

---- --- -----------------

使用 @dinoboff/ims-lti

在你的前端项目中,为了能够使用 @dinoboff/ims-lti,你需要引入这个库,然后创建一个 LTI 对象。在实践中,我们一般需要考虑以下四个方面:

  1. 配置参数(Config)
  2. 验证消息参数(Validate Message)
  3. 处理请求参数(Process Request)
  4. 发送结果参数(Send Result)

下面我们一一来看这四个方面的实现方法。

配置参数(Config)

当我们在使用 @dinoboff/ims-lti 的时候,需要对 LTI 连接进行配置。这个库提供了一个 Lti 配置对象,我们在创建 Lti 对象时,将这些配置参数传入。以下是一个示例代码片段:

----- - --- - - -----------------------------

----- --- - --- -----
  ------------ ---------------
  --------------- ------------------
  ------------ -----------------------------------
  ----- -
    ------- ------------------------
    --------- ------------
    ------------- ----------------
    ------------ -------------------------------------
  --
---

上述代码中,我们首先从 @dinoboff/ims-lti 中引入 Lti 对象,然后在创建 Lti 对象时,通过传入相应的配置参数来配置操作。

在这个示例代码中,我们需要提供多个参数:

  • consumerKey :消费者密钥
  • consumerSecret :消费者密钥验证
  • providerUrl :LTI 连接提供者 URL
  • oidc :LTI OIDC 配置参数

当我们有这些配置信息之后,我们就可以进行其他操作了。

验证消息参数(Validate Message)

在处理 LTI 消息时,我们一般会用到验证消息的功能,来确保 LTI 请求者是合法的,这很重要。使用 @dinoboff/ims-lti,你可以很方便地进行消息验证。以下是一个示例代码片段:

----- - --- - - -----------------------------

----- --- - --- -----
  ------------ ---------------
  --------------- ------------------
  ------------ -----------------------------------
  ----- -
    ------- ------------------------
    --------- ------------
    ------------- ----------------
    ------------ -------------------------------------
  --
---

-- ----
----- ------- - ---------------------------- ---------
-- ---------- -
  ---------------------- --- ------- ---------- ---- ------- -------------
  -------
-

上述代码中,validateMessage 方法被传入一个请求体和一个请求头的哈希表或者一个 Express 请求对象。这个方法会对请求体和请求头进行验证并返回一个布尔值来表示请求是否是 LTI 请求。如果验证失败,将会抛出异常。

需要注意的是,在验证消息的时候,我们一定要先创建 Lti 对象,然后再使用这里面的方法。

处理请求参数(Process Request)

当我们进行 LTI 操作时,除了要验证消息,还需要根据 LTI 请求的不同参数,进行不同的操作。例如,处理 basiclti-launch-request 里面的参数用来启动学习应用程序。

使用 @dinoboff/ims-lti 库,你可以在 processRequest 方法里面进行 LTI 请求参数的处理。以下是一个示例代码片段:

----- - --- - - -----------------------------

----- --- - --- -----
  ------------ ---------------
  --------------- ------------------
  ------------ -----------------------------------
  ----- -
    ------- ------------------------
    --------- ------------
    ------------- ----------------
    ------------ -------------------------------------
  --
---

-- ----
--------------------------- ---------
  -------- -- -
    ---------------- ------- ------------ --------------
  --
  -------------- -- -
    -------------------- ---------- --- -------- -----------
  ---

这个代码中,我们使用 Lti 对象上的 processRequest 方法,来进行 LTI 请求的参数处理。这个方法被传入一个请求体和一个响应对象,在请求处理完成之后,可以对响应对象进行操作。

发送结果参数(Send Result)

在处理完 LTI 请求之后,你可能需要将处理结果发送回 LTI 请求者。例如,发送一个学习分数,或者一个认证票据。通过 @dinoboff/ims-lti 库的 sendResult 方法,你可以方便地向 LTI 请求者发送结果参数。以下是一个示例代码片段:

----- - --- - - -----------------------------

----- --- - --- -----
  ------------ ---------------
  --------------- ------------------
  ------------ -----------------------------------
  ----- -
    ------- ------------------------
    --------- ------------
    ------------- ----------------
    ------------ -------------------------------------
  --
---

-- ------
---------------------------
  -------- -- -
    ------------------- --- ------------ ---------
  --
  -------------- -- -
    -------------------- ------- ------- -----------
  ---

上述代码中,我们使用 Lti 对象上的 sendResult 方法来发送结果参数,这个方法被传入一个结果数组,可以将需要发送的结果放在这个数组里面。

总结

@dinoboff/ims-lti 是一个非常有用的 npm 库,它提供了非常详细、具有深度的 Lti 功能,并可以使用 LTI 版本 1.1 和 1.3,使用这个库,你可以轻松地进行 LTI 相关的操作。在本篇文章中,我们详细介绍了这个库的使用方法,包括配置参数、消息验证、请求参数处理和结果参数发送等。希望这篇文章对你有所帮助!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60055ff581e8991b448ddc74


猜你喜欢

  • npm包 react-3h 使用教程

    1. 简介 react-3h是一款基于react框架开发的高质量UI组件库,在前端开发中可以大大提高开发效率。react-3h提供了一系列的组件,例如Button、Modal、Table等等。

    3 年前
  • NPM 包 Simple-tcpscan 使用教程

    前言 在前端开发中,有时需要进行端口扫描,以确保我们的页面和服务都能正常运行。虽然这个任务听起来很简单,但是其实需要使用一些工具来完成。今天我们介绍一种便捷的工具——Simple-tcpscan。

    3 年前
  • npm 包 ui-e 使用教程

    在前端开发中,使用一些现成的UI组件库可以大幅提高开发效率,而 npm 包 ui-e 就是一个很好的选择。本文将详细介绍如何使用 npm 包 ui-e,以及在使用过程中需要注意的问题,并提供示例代码进...

    3 年前
  • npm 包 chained-function 使用教程

    在前端开发中,我们经常需要在一个函数中执行多个函数,或者跳出当前函数执行另一个函数。这时,我们可以使用 npm 包 chained-function 来有序的执行多个函数或者跳过当前函数。

    3 年前
  • npm 包 fs-delete-empty 使用教程

    在前端开发中,我们经常需要使用到文件系统操作,例如创建、读取、复制、删除等等。其中删除空文件夹是一个经常会用到的操作,而 npm 包 fs-delete-empty 就提供了一个删除空文件夹的工具,本...

    3 年前
  • npm包node-stdio使用教程

    node-stdio 是一个 Node.js 模块,它可以让你在命令行中以交互式的方式使用你的 Node.js 程序。 它可以很方便地将标准输入和标准输出转换为 JavaScript 对象的形式,从而...

    3 年前
  • npm 包 git-chauthor 使用教程

    前言 在实际的前端开发过程中,经常需要在开发中使用 git 来管理版本,同时为了记录发版日志和贡献者等信息,我们需要在 commit 信息中加入这些信息。随着团队规模和项目复杂度的不断提高,commi...

    3 年前
  • npm包 react-project-initializer使用教程

    在前端开发中,使用React是非常常见的。但是,每次创建一个React项目都需要手动配置,这将浪费大量的时间并可能导致错误。因此,一些开发者则创建了npm包 "react-project-initia...

    3 年前
  • npm 包 simplefsm 使用教程

    在前端开发中,有许多需要处理状态机的业务场景,比如有限状态机(Finite State Machine,FSM)和有向无环图(Directed Acyclic Graph,DAG)等。

    3 年前
  • npm 包 slackicons 使用教程

    Slack 是现今广为人知的一款团队沟通工具,它的图标也是很独特的,常常被拿来用于各种前端 UI 设计中。而 npm 包 slackicons 也应运而生,可以方便地使用各种 Slack 图标。

    3 年前
  • npm 包 vscode-open-in-terminal 使用教程

    在前端开发中,我们经常需要在 VS Code 中使用终端来执行命令、运行程序等操作。如果你每次都需要手动在 VS Code 中打开终端,那么使用 vscode-open-in-terminal 这个 ...

    3 年前
  • npm 包 es6captcha 使用教程

    前言 es6captcha 是一款使用 TypeScript 编写的可以快速生成验证码的 npm 包。它可以生成各种类型的验证码:如数字验证码、字母验证码、数字和字母组合验证码等。

    3 年前
  • npm 包 eslint-config-uforce 使用教程

    前言 在前端开发中,我们经常需要使用各种代码规范工具来保证代码风格的一致性和可读性。其中,ESLint 是一个非常好的工具,它可以帮助我们检测 JavaScript 代码中的潜在问题,并根据配置指南对...

    3 年前
  • npm 包 npm_alex 使用教程

    什么是 npm 包? npm(Node.js Package Manager)是 Node.js 的包管理器,其中包括了许多开源的 JavaScript 包。npm 包是一种可重复使用的代码单位,它可...

    3 年前
  • npm 包 state-polygon 使用教程

    介绍 state-polygon 是一个能够生成美国各州的多边形边界坐标的 npm 包,可供前端开发者使用。通过使用这个包,你可以轻松地将多边形边界坐标数据整合到你的应用程序中,以实现更多的交互特效。

    3 年前
  • npm 包 @donyariesta/react-form 使用教程

    介绍 @donyariesta/react-form 是一个用于 React 前端开发的 npm 包,它可以让开发者在代码中使用更加便捷的方式来处理表单数据。本文将会详细地介绍这个包的安装使用以及提供...

    3 年前
  • npm 包 co-async-migrate 使用教程

    随着 Node.js 应用的不断增长,npm 成为了 Node.js 应用的重要组成部分。在 Node.js 项目中,我们经常需要使用到异步操作,比如读写文件、数据库操作等等。

    3 年前
  • npm 包 event-builder 使用教程

    介绍 event-builder 是一个 JavaScript 库,可以帮助开发者方便地创建和触发自定义事件。使用它,可以轻松实现复杂的应用程序架构并提高代码可维护性。

    3 年前
  • npm 包 react-apollo-graphql 使用教程

    在前端开发过程中,我们经常会使用到 GraphQL 来处理数据请求。而在 React 中,一个常见的流行库就是 react-apollo-graphql,它提供了一种简单而强大的方式来在 React ...

    3 年前
  • npm 包 spotify-discover 使用教程

    简介 spotify-discover 是一个方便的 npm 包,能够让前端开发人员更轻松地集成 Spotify 发现页面到他们的网站或应用程序中。该包使用了 Spotify Web API,通过与其...

    3 年前

相关推荐

    暂无文章