联合实验室 网站建设方案,国外推广国内网站,内蒙古网站建设电话,wordpress模板 付费HTTP Basic 认证 难度等级#xff1a;【初级】 由RFC7617定义的HTTP Basic认证是一种非常基础而简单的认证模式#xff0c;因此叫他Basic认证。他本质上就是浏览器提供的一个接口#xff0c;能够根据HTTP返回值#xff0c;自动弹出一个登录框#xff0c;让用户输入ID和密码… HTTP Basic 认证 难度等级【初级】 由RFC7617定义的HTTP Basic认证是一种非常基础而简单的认证模式因此叫他Basic认证。他本质上就是浏览器提供的一个接口能够根据HTTP返回值自动弹出一个登录框让用户输入ID和密码最后发给服务器校验如若成功此后每次请求都会携带这个头部。Basic认证确实省去了许多麻烦事不需要再手写一个前端登录界面不需要缓存token塞到请求头不需要定义复杂的交互接口。对于小型网站来说Basic认证能够快速实现一个登录模块。 浏览器原生的4种弹框 1. console.alert(警告); // 一段消息、确定键。【1个按钮】 2. console.confirm(确认); // 一段消息、确定键、取消键。【2个按钮】 3. console.prompt(输入); // 一段消息、输入框、确定键、取消键。【1个文本框2个按钮】 4. Basic 认证弹窗一段消息、ID输入框、密码输入框、登录键、取消键。【2个文本框2个按钮】 RFC 7617基本逻辑 1. 浏览器请求HTTP。 2. 服务器返回401 Unauthorized。 3. 浏览器弹出登录窗口。 4. 用户输入用户名和密码并确认。 5. 浏览器用Base64编码用户名和密码。 6. 浏览器通过Authorization头部请求HTTP。 7. 服务器验证用户名和密码。 8. 服务器返回200 OK或者401 Unauthorized。 NodeJS代码实现 // HTTP Basic 认证
require(http).on(request, (req, res) {let auth req.headers.authorization?.replace(Basic , );auth Buffer.from(auth || , base64).toString(utf-8);if (username:password auth) {res.writeHead(200);res.end(成功);} else {res.writeHead(401, {WWW-Authenticate: Basic realminveta});res.end(失败);}
});