npm 包 sp-auth 使用教程

前言

在开发前端应用的过程中,我们时常需要和远程的 SharePoint 服务器交互,以获取数据或者与 SharePoint 相关的文件。而这样的操作,肯定离不开 SharePoint 的认证机制。因此,我们需要使用一个认证工具,来进行对 SharePoint 的认证。本文介绍了一个 Node.js 表现出色的 SharePoint 认证工具 - sp-auth,特点是易于使用、支持在线环境和内部部署的 SharePoint。

sp-auth 简介

sp-auth 是一个 Node.js 模块,用于在 Node.js 环境中提供 SharePoint 认证。该模块支持 SharePoint Online 或 SharePoint 2016、2013、2010 版本的认证。sp-auth 包括两部分:sp-requestnode-sp-auth

  • sp-request:是一个 Node.js 模块,提供了对 SharePoint 服务器的请求功能。
  • node-sp-auth:是一个 Node.js 模块,提供了 SharePoint 的认证和授权。

sp-auth 安装和使用

安装 sp-auth 只需使用 npm 在命令行中输出以下命令即可:

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

sp-auth 实现认证

在使用 sp-auth 模块之前,请确认您已经了解 SharePoint 的认证机制。通常,SharePoint 认证有以下几种:

  • HTTP Basic Authentication
  • NTLM Authentication
  • Forms-based Authentication

现在让我们分别介绍这些认证方式的实现。

HTTP Basic Authentication

HTTP Basic Authentication方式是以明文的方式在请求头(Header)中发送用户名和密码来进行认证的,而且是不安全的。如果您的 SharePoint 服务器不支持 HTTPS 传输,不建议您使用这种认证方式。

使用 HTTP Basic Authentication 方式进行认证的代码大概长这个样子:

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

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

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

您需要把变量 siteUrlusernamepassword 替换成您自己的 SharePoint 网站 URL、用户名和密码。当该代码运行完成之后,您会得到一个包含所有列表信息的 JSON。

NTLM Authentication

NTLM Authentication 方式,比 HTTP Basic Authentication 方式更加安全,它在本地和远程计算机之间进行三次认证,发送的是经过加密处理的信息。NTLM 仅适用于 Windows 操作系统。

使用 NTLM Authentication 方式进行认证的代码大概长这个样子:

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

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

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

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

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

如果您要使用 NTLM Authentication 方式进行认证,需要注意以下几点:

  • securityOptions['rejectUnauthorized'] = false; 这个选项必须明确地指定,否则程序将无法正常运行;
  • securityOptions['headers'] = headers; 这一步是必须的,因为 requestDigest 请求需要从先前的鉴权请求获得的头部信息中获取。

Forms-Based Authentication

如果您的 SharePoint 站点配置了 WebView 以运行 Forms-Based Authentication 模式,则需要通过一些微妙的步骤才能进行认证。在进行 Forms-Based Authentication 方式的认证之前,需要为模块提供一个函数,该函数将在模块内部的 SharePoint 请求中使用。

使用 Forms-Based Authentication 方式进行认证的代码大概长这个样子:

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

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

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

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

如果要使用 Forms-Based Authentication 方式进行认证,请注意以下几点:

  • 需要为模块提供一个函数,该函数将在模块内部的 SharePoint 请求中使用;
  • 其他的配置项应该类似于这个示例。

总结

现在,您已经了解了如何使用 sp-auth 模块来进行 SharePoint 认证。在使用过程中,您还需要注意一些细节。我们相信,本文对您有帮助并能够帮助您轻松认证 SharePoint 并与之交互。

示例代码题

请尝试使用 sp-auth 模块完成以下票据列表的获取,并将以下结果通过控制台输出。示例代码必须针对 SharePoint Online 进行编写:

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

参考答案:

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

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

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

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

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

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


猜你喜欢

  • NPM 包 random-groups 使用教程

    random-groups 是一个能够帮助你生成随机分组的 NPM 包,它可以在前端开发中帮助你快速进行分组开发工作。在这篇文章中,我们将介绍如何使用 random-groups,包括安装,使用方法以...

    3 年前
  • npm 包 json-sync 使用教程

    在前端开发中,处理 JSON 数据是十分常见的。而 npm 中有一个名为 json-sync 的包可以对 JSON 数据进行同步化处理,对于我们的开发过程有一定的帮助。

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

    在前端开发中,我们经常需要用到各种 UI 组件,这些组件不仅能够提高开发效率,还可以有效地提升用户体验。 Sand UI 是一个基于 React 的 UI 组件库,提供了多种常用组件,例如按钮、表单、...

    3 年前
  • npm 包 cqc-loader 使用教程

    介绍 cqc-loader 是一个 webpack loader,可以自动解析页面中的中文,将其编译成拼音。它能够简化前端开发过程中中文输入的繁琐步骤,让代码更易于阅读和维护。

    3 年前
  • npm 包 typestub-sweetalert2 使用教程

    前言 什么是 typestub-sweetalert2?它是一个声明了 SweetAlert2 模块的类型的 TypeScript 模块。SweetAlert2 是一款强大的定制化弹框插件,支持动效、...

    3 年前
  • npm 包 color-of 使用教程

    本文将带您详细了解 npm 包 color-of 的使用方法。color-of 是一个用于生成颜色相关信息的 npm 包,提供了丰富的 API,可以轻松地计算两种颜色之间的距离、获取 RGB 值等。

    3 年前
  • npm 包 generator-enjoy-rollup 使用教程

    在前端开发中,一款好的构建工具可以提高我们开发的效率和代码的可维护性。而在构建工具中,rollup 是一个优秀的打包工具,它可以将 ES6 模块化的代码打包成一个文件,同时还支持 Tree Shaki...

    3 年前
  • npm 包 generator-enjoy-vue 使用教程

    简介 generator-enjoy-vue 是一款基于 Yeoman 构建的 Vue.js 项目生成器。通过它,我们可以快速创建一个新的 Vue.js 项目,并自动化生成常见的文件结构、组织代码、配...

    3 年前
  • npm 包 zeronet-storage-fs 使用教程

    前言 随着 web 技术的快速发展,前端开发的重要性也日益突显。而其中的前端开发者如何更好地维护数据和文件呢?这便要借助于 npm 包 zeronet-storage-fs。

    3 年前
  • npm 包 markdown-html-webpack-plugin 使用教程

    在前端开发中,Markdown 是一种非常流行的文档格式,它可以提高文档编写的效率,使得文档内容更加清晰和易读。但是,在实际工作中,我们往往需要将 Markdown 转换成 HTML 格式,以便于在网...

    3 年前
  • npm 包 zeronet-storage-memory 使用教程

    前言 在进行前端开发过程中,我们经常需要对于客户端的缓存数据进行存储,而 zeronet-storage-memory 这一 npm 包则为我们提供了一种内存储存方案,让我们在开发过程中能够更加灵活、...

    3 年前
  • npm 包 js-to-scss 使用教程

    随着前端技术的不断发展,我们需要一种便捷的方式去管理和编写样式表。在这篇文章中,我将会介绍一个非常实用的 npm 包:js-to-scss。它可以把 js 对象转化为 scss 样式表。

    3 年前
  • npm 包 antd-import 使用教程

    在前端开发中,使用外部的 UI 组件库可以显著地提高开发效率和产品质量。The Ant Design 是一个流行的 UI 组件库,其 NPM 包的名称为 antd。

    3 年前
  • npm 包 cordova-plugin-equil-smart-pen 使用教程

    简介 cordova-plugin-equil-smart-pen 是一款能够与 Equil Smartpen 相互通讯的 Cordova 插件。Equil Smartpen 是一款可以实时将手写笔记...

    3 年前
  • npm 包 vue-projection-grid 使用教程

    前言 在现代 web 开发中,前端框架已经是必不可少的。而在任何一个前端框架中,表格都是常常使用到的一个组件。vue-projection-grid 就是一个基于 Vue.js 的表格组件。

    3 年前
  • npm 包 babel-plugin-decompose 使用教程

    随着前端项目的日益复杂,JavaScript 代码的可维护性和可复用性成为开发者关注的焦点。为了能够更好地解决这个问题,我们使用了 ES6+ 的语法,但是在一些项目中可能使用了一些不兼容的语法特性,导...

    3 年前
  • npm 包 compages 使用教程

    介绍 compages 是一个基于 React 的组件库,提供了常用的 UI 组件,如按钮、输入框、选择器等,可以帮助开发者快速搭建前端应用的 UI 界面,提高开发效率。

    3 年前
  • npm 包 cut-up-method-js 使用教程

    前言 在前端领域,我们经常需要将字符串按照指定长度进行分割,以便于格式化、展示等操作。cut-up-method-js 是一个提供字符串分割功能的 npm 包,本文将从安装、基础用法、高级用法和实战案...

    3 年前
  • npm 包 generator-swagen 使用教程

    本文介绍了一个名为 generator-swagen 的 npm 包的使用方法。generator-swagen 是一个 Swagger API 文档自动生成器,可以帮助前端开发人员从 Swagger...

    3 年前
  • npm 包 happn-stats-elasticsearch 使用教程

    npm 是一个非常重要的前端开发工具,在大多数前端项目中都会使用到。其中 happn-stats-elasticsearch 是一个使用较为频繁的包,本文将为大家介绍该包的使用详解。

    3 年前

相关推荐

    暂无文章