npm 包 cut-ldap-auth 使用教程

在前端领域中,身份验证一直是一个重要的主题。而在大多数企业环境中,LDAP(轻量目录访问协议)是普遍用于用户认证和授权的技术。cut-ldap-auth 就是一个可以方便地在前端中使用 LDAP 认证的 npm 包。本文将介绍 cut-ldap-auth 的基本使用方法和一些高级用法,以及如何在项目中使用。

基本使用方法

cut-ldap-auth 是一款非常易用的 npm 包,只需要简单的几行代码就可以完成身份验证。首先需要安装:

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

然后在代码中引入:

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

接着,通过以下方式来验证用户:

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

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

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

也可以使用 Promise:

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

高级用法

除了基本的身份验证,cut-ldap-auth 还提供了一些高级用法:

配置

可以通过传递一个配置对象来配置 LDAPAuth。

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

属性解释:

  • port - LDAP 服务器监听的端口。默认情况下,使用标准的 LDAP 端口(389),使用 SSL(636)时需要设置为 636。
  • useSSL - 如果使用 SSL 进行安全连接,则将其设置为 true
  • bindDN - 要绑定到服务器的对象的 DN。
  • bindCredentials - 用于绑定到服务器的凭据。
  • searchDN - 要搜索的 LDAP 目录的基本 DN。
  • searchCredentials - 用于启用绑定时的外部身份验证的凭据。

添加多个服务器地址

如果 LDAP 服务器有多个地址,则可以传递一个数组,从而使它们都能被测试。

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

自定义验证函数

除了使用 authenticate() 函数之外,还可以使用自定义的验证函数来验证用户。

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

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

其中,回调函数接收两个参数:一个是错误信息,另一个是用户信息。

自定义用户过滤器

默认情况下,cut-ldap-auth 会使用以下过滤器过滤用户:

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

如果需要使用自定义的用户过滤器,可以通过 authenticate() 函数传递一个选项对象来实现:

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

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

或者使用自定义回调函数:

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

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

项目中使用

对于大多数项目而言,最好的做法是将 cut-ldap-auth 封装成一个身份验证服务。这样,认证和授权可以从前端代码中分离出来,可以大大简化代码量。下面是一个参考实现:

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

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

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

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

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

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

在本身身份验证服务中实例化 LDAPAuth 对象,并以此验证用户的用户名和密码。然后使用自定义逻辑获取用户拥有的角色,并生成一个 JWT(JSON Web Token)。

在前端代码中,可以这样使用:

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

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

这样就实现了简单的身份验证服务,并将验证逻辑从前端代码中分离出来。同时,使用异步 API 通过执行非常快速。

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


猜你喜欢

  • npm 包 mongoose-batches-limit 使用教程

    前言 在开发 Node.js 项目中,很多时候需要使用 MongoDB 来存储数据。而在 Node.js 中,Mongoose 是一个非常流行的 MongoDB 数据库驱动程序。

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

    webpack-obj-loader 是一个 npm 包,用于为 webpack 提供一个处理 .obj 文件的加载器。.obj 文件是一种常见的 3D 模型格式,使用该加载器可以轻松地在前端中加载和...

    3 年前
  • 使用 node-red-contrib-odoo-xmlrpc-with-filters 增强前端开发

    Node-Red 是一种基于 Node.js 开发的可视化编程工具,它可以实现快速搭建流程化应用程序的功能,而 node-red-contrib-odoo-xmlrpc-with-filters 则是...

    3 年前
  • NPM 包 tryad 使用教程

    什么是 tryad tryad 是一个非常实用的 JavaScript 库,它可以帮助前端开发人员更方便地调试及验证数据的正确性。通过 tryad,您可以快速方便地测试并验证您的代码或后端 API 返...

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

    介绍 js-singleton 是一个适用于 JavaScript 的单例模式实现工具。单例模式是一种设计模式,它将类的实例化限制为一个对象。在前端开发中,单例模式经常用于创建全局对象、管理浏览器缓存...

    3 年前
  • npm 包 sassdoc-theme-aa 使用教程

    介绍 sassdoc-theme-aa 是一个用于 Sass 文档生成的主题,通过使用它,我们可以将 Sass 代码转换为可视化的文档,使得代码更具有可读性和可维护性。

    3 年前
  • npm 包 @qbunnyteam/pouchdb-update 使用教程

    在前端开发中,使用数据库是必不可少的一部分。而 PouchDB 作为一款 JavaScript 数据库,既可以在浏览器中使用,也可以使用 Node.js 进行服务器端开发。

    3 年前
  • npm 包 swifty 使用教程

    前言 在前端开发中,有时候我们可能需要处理一些复杂的逻辑,例如异步请求、事件处理等。这时候,我们可以使用一些工具库来简化我们的代码。npm 上有很多这样的工具库,其中 swifty 就是一款非常优秀的...

    3 年前
  • npm 包 grapeql 使用教程

    GrapeQL 是一个可为 PostgreSQL 数据库编写和管理 SQL 查询和 JavaScript 脚本的工具。GrapeQL 支持 JavaScript 与 SQL 集成,可以通过 Grape...

    3 年前
  • npm 包 ida-autolinker 使用教程

    简介 ida-autolinker 是一个可以自动识别文本中链接、email、电话号码等并生成对应的 HTML 标签进行渲染的 npm 包。它能够在前端中方便地进行使用,使文本链接不再需要手动添加 &...

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

    Insight-digibyte-ui 是一个基于 React 的 npm 包,用于在前端应用中展示 Digibyte 区块链的交易信息,包括余额、交易量、交易历史等。

    3 年前
  • npm 包 poem-finder 使用教程

    随着互联网和科技的发展,在线文学和诗歌文化越来越受到人们的重视和欣赏。如果你是一名前端开发工程师,想要为你的文学网站或者应用程序增加诗词的相关功能,那么 npm 包 'poem-finder' 可以为...

    3 年前
  • npm 包 react-full-header-tdd-course 使用教程

    在前端开发中,我们常常使用的一种工具就是 npm 包。npm 是一款用于管理 JavaScript 包的工具,可提供数以百万计的开源软件便于我们集成和使用。 今天,我们将介绍一个名为 react-fu...

    3 年前
  • npm 包 socket-promise 使用教程

    在前端开发中,有许多场景需要与服务器建立实时的双向通信,这时候就需要使用到 WebScokets 技术。Node.js 中有一个socket.io库可以用来实现 WebSocket, 但在前端浏览器中...

    3 年前
  • npm 包 coinrush 使用教程

    前言 随着区块链技术的不断发展,数字货币的应用越来越广泛。在这样一个背景下,开发一个支持数字货币支付的应用程序需要考虑到很多因素,其中之一就是如何接收和处理数字货币支付。

    3 年前
  • npm 包 react-native-keyboard-avoid 的使用教程

    在前端开发中,移动端开发的需求越来越多,而 React Native 是一款流行的开发框架。在使用 React Native 开发移动端应用时,有时会遇到键盘弹起挡住输入框的问题,这时候就需要使用 r...

    3 年前
  • npm 包 contentful-wizard 使用教程

    在前端开发中,使用第三方包简化开发流程是很常见的事情。其中一个非常有用的 npm 包就是 contentful-wizard。这个包可以帮助我们快速构建内容管理系统,同时提高我们的开发效率。

    3 年前
  • `npm` 包 `restocat-watcher` 使用教程

    restocat-watcher 是一款可以帮助前端开发者快速监测浏览器页面变化的工具。它能够记录浏览器的请求和响应,跟踪数据变化,并将这些变化实时更新到开发者的控制台中。

    3 年前
  • npm 包 tinyjs-plugin-weapon 使用教程

    在前端开发中,使用插件能够大大提高开发效率和减少工作量。对于前端游戏开发而言,选择一个好用的插件对于游戏的体验和质量至关重要。而 tinyjs-plugin-weapon 就是一款非常好用的游戏插件,...

    3 年前
  • npm 包 @gerhobbelt/esquery 使用教程

    前言 在前端开发中,我们经常需要对代码进行一些查询、过滤、转换等操作,而 JavaScript 作为一门动态语言,代码的结构很灵活,使得这些操作变得困难。Esquery 是一种查询语言,它允许我们用类...

    3 年前

相关推荐

    暂无文章