生成 .htpasswd 文件
htpasswd -c /etc/nginx/.htpasswd user
这里的参数解释:
- -c:表示创建新的 .htpasswd 文件(如果文件已经存在,使用该选项会覆盖文件)。
- /etc/nginx/.htpasswd:这是 .htpasswd 文件的存储位置,你可以根据需要修改这个路径。
- user:你要创建的用户名。
执行命令后,它会提示你输入并确认密码。输入密码后,htpasswd 工具会自动将其加密并保存到 .htpasswd 文件中。
配置 Nginx 使用基本认证
server {
listen 80;
location / {
auth_basic "Restricted Area"; # 提示消息
auth_basic_user_file /etc/nginx/.htpasswd; # 指定 .htpasswd 文件路径
}
}
代码中使用认证
- 拼接用户名和密码
首先,你需要将用户名和密码拼接成一个字符串,格式为 username:password。例如:
username:password
- 对 username:password 字符串进行 Base64 编码
echo -n "user:password123" | base64
输出将是类似以下的 Base64 编码:
dXNlcjpwYXNzd29yZDEyMw==
- 在 Authorization 头中使用
生成的 Base64 编码字符串可以直接用于 HTTP 请求的 Authorization 头中,如下所示:
Authorization: Basic dXNlcjpwYXNzd29yZDEyMw==
使用命令行解码 Base64 编码:
echo "dXNlcjpwYXNzd29yZDEyMw==" | base64 --decode