0%

nginx基础认证使用

生成 .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 文件路径
    }
}

代码中使用认证

  1. 拼接用户名和密码
    首先,你需要将用户名和密码拼接成一个字符串,格式为 username:password。例如:
username:password
  1. 对 username:password 字符串进行 Base64 编码
echo -n "user:password123" | base64

输出将是类似以下的 Base64 编码:

dXNlcjpwYXNzd29yZDEyMw==
  1. 在 Authorization 头中使用
    生成的 Base64 编码字符串可以直接用于 HTTP 请求的 Authorization 头中,如下所示:
Authorization: Basic dXNlcjpwYXNzd29yZDEyMw==

使用命令行解码 Base64 编码: echo "dXNlcjpwYXNzd29yZDEyMw==" | base64 --decode