在前端领域中,身份验证一直是一个重要的主题。而在大多数企业环境中,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