如何使用Node.js在GET方法中检查用户身份验证
有许多身份验证方法,如Web令牌身份验证、基于Cookie的身份验证等。在本文中,我们将讨论使用express.js处理客户端请求时的一种最简单的身份验证方法,通过使用HTTP头部帮助get请求。
方法:HTTP协议使用各种类型的头部来验证客户端,我们将使用WWW-Authenticate头部进行身份验证。HTTP WWW-Authenticate头部是一种响应类型的头部,并且作为支持各种身份验证机制的重要工具,可以控制对页面和其他资源的访问。
身份验证的解释:
当客户端的请求头中不包含WWW-Authenticate头时,服务器的响应头会设置该头。
header的设置是res.setHeader("WWW-Authenticate", "Basic")
,并设置状态码为401。之后,在客户端会弹出一个窗口用于有效的身份验证。
身份验证表单:
模块安装: 使用以下命令安装express模块。
项目结构:
index.js
使用以下命令运行 index.js :
输出:
- 通过在隐私窗口中打开任何带有 http://localhost:3000 地址的浏览器(为了避免保存的密码和用户名),将出现一个弹出窗口。填写代码中提到的用户名和密码。
-
如果输入的用户名和密码与提到的匹配,那么浏览器将呈现 index.html 。
解释: 当服务器启动并且客户端输入本地主机地址时,首个中间件用于检查客户端的身份验证。最初, req.headers.authorization 未定义,并通过next()回调函数返回401状态码表示未经授权访问浏览器。客户端填写凭证,并将凭证以base64格式加密。然后,解密包含用户名和密码的base64格式数据,并在检查用户名和密码正确后,调用next()方法调用身份验证中间件之下的下一个中间件;否则,身份验证表单会一次又一次地弹出。
请求头详细信息: