什么是 respected
respected 是一个用于验证用户登录凭证的 Node.js 模块,它支持多种认证方式,包括用户名/密码、Cookie、JWT 等。使用 respected 可以轻松地实现用户认证功能,避免重复编写认证逻辑。
安装
使用 npm 安装:
npm install respected
使用方法
以下为一个简单的使用示例:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --------- - --------------------- ----- --- - ---------- -- -- ---------- -------- --------------------------- -- ------ --------- --------------- ------------------------------ ------- --------- --------- ----- ------- -- - -- -- --- ----- ---- ----- ---- - ----- ------------------- ------ ----- -- ---- -- ------- --- ----- --- ------------------ ----- ----- ---- -- - ----- - --------- -------- - - --------- ----- ---- - ----- ------------------ ---------- -- ------- - ------ ---------------------- ------ -------- -------- -- --------- --- - ----- ----- - ----- -------------------- ---------- ----- --- --- -- --------------- --------------------- ----- ---- -- - ----- ---- - --------- ---------- -------- ------- ------------- --- --- -----------------
在这个示例中,/protected
接口需要登录才能访问,使用了 respected 中间件来验证用户登录凭证。在中间件的选项中,我们指定了认证方式为 Bearer,也就是 JWT token 在请求头中的格式。
验证函数中使用了异步函数,在异步函数中可以进行数据库查询等耗时操作,返回值为通过验证的用户对象。在路由中可以通过 req.auth
获取到通过验证的用户对象。
API
respected.middleware(options)
返回一个 Express 中间件函数,用于验证用户登录凭证。
选项:
scheme
:字符串或正则表达式,表示登录凭证的认证方式。如果是字符串,则必须与请求头中的认证方式完全匹配;如果是正则表达式,则必须与请求头中的认证方式部分匹配。默认为'Bearer'
。validate(token, req)
:异步函数,用于验证登录凭证。参数token
为凭证字符串,参数req
为 Express 请求对象。在该函数中应该进行登录凭证的验证,并返回通过验证的用户对象。如果身份验证失败,则应该抛出错误或返回false
。该函数必须为异步函数,并且返回值必须是一个对象或null
、undefined
。
respected.verify(token, options)
验证登录凭证的函数。参数 token
为凭证字符串,参数 options
为选项对象。
选项:
scheme
:字符串或正则表达式,表示登录凭证的认证方式。如果是字符串,则必须与请求头中的认证方式完全匹配;如果是正则表达式,则必须与请求头中的认证方式部分匹配。默认为'Bearer'
。validate(token)
:异步函数,用于验证登录凭证。参数token
为凭证字符串。在该函数中应该进行登录凭证的验证,并返回通过验证的用户对象。如果身份验证失败,则应该抛出错误或返回false
。该函数必须为异步函数,并且返回值必须是一个对象或null
、undefined
。
respected.extractToken(req, options)
从请求对象中提取登录凭证的函数。参数 req
为 Express 请求对象,参数 options
为选项对象。
选项:
scheme
:字符串或正则表达式,表示登录凭证的认证方式。如果是字符串,则必须与请求头中的认证方式完全匹配;如果是正则表达式,则必须与请求头中的认证方式部分匹配。默认为'Bearer'
。
返回登录凭证的字符串,如果请求头中不存在登录凭证,则返回 null
。
总结
respected 是一个方便的 Node.js 模块,用于验证用户登录凭证。它支持多种认证方式,使用简单,可以轻松实现用户认证功能。在实际使用中,我们可以根据需要选择合适的认证方式,并编写验证函数进行自定义验证逻辑的实现。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055bd381e8991b448d9744