前言
在开发前端应用的过程中,我们时常需要和远程的 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-request
和 node-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 方式进行认证的代码大概长这个样子:
----- ------ - ------------------- ----- ------- - ---------------------------------- ----- ------- - ----------------------------------- ----- -------- - ---------------------------- ----- -------- - --------------------------- ----- --------------- - --- -- ----- -- ---- ---- ----------------------- - --------- --------- --------- --------- -------- --------------- -- ------------------ -- - ----- ------- - --------------------- ------------- ---- ------- - --------------- -------- -------- ----- ---- -- -------------- -- - ---------------------- -- ---------- -- - ------------------- --- -- ---------- -- - ------------------- ---
您需要把变量 siteUrl
、username
和 password
替换成您自己的 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